我想使用awk将CSV文件转换为仅包含原始列子集的新CSV文件。我也只想在其中一列中用下划线替换空格。我已经试过像这样:
gawk -F "," '
{
name=gsub(/ /,"_",$1);
label=$2;
print ","name","label","
}' ./in.csv >> ./out.csv
但是gsub()返回匹配出现的次数,而不是替换字符串。所以我得到这样的东西:
,1,label
代替:
,name_nospace,label
如何使用像这样的awk gsub只替换一个列的字符?
最佳答案
别:
name=gsub()
因为
gsub
返回替换数,而不是字符串。只是gsub()
并打印您喜欢的字段,即:
gsub(/ /,"_",$1);
label=$2;
print "," $1 "," label "," # or whatever you were doing
关于awk - 用awk gsub替换CSV文件一列中的字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41487510/