输入(a.txt)
aa <tab> c-c-c<tab>k-k-k<tab>
ll <tab> j-j-j <tab>v-v-v<tab>
需要的输出(b.txt)
aa <tab> c.c.c<tab> k.k.k<tab>
ll <tab> j.j.j <tab>v.v.v<tab>
请纠正我:(这不起作用,只有在我要求更换11美元专栏时才有效)
awk -F "\t" -v OFS="\t" '{gsub("-",".",$11,&14,&17); print;}' /home/a.txt > /home/b.txt
答案 0 :(得分:2)
如果要对所有字段进行全局替换,则无需在gsub函数中指定字段编号。
awk '{gsub(/-/,".")}1' /home/a.txt > /home/b.txt
答案 1 :(得分:0)
似乎你不想在整行上做替换,只需要3列,然后就这样做了:
awk -F "\t" -v OFS="\t" 'BEGIN{a[11]=a[14]=a[17]=7}
{for(x in a)gsub("-",".",$x)}7' /home/a.txt > /home/b.txt