Mar*_*ton 45 linux awk text-processing replace
鉴于:记录中有 40 列。我想替换第 35 列,以便将第 35 列替换为第 35 列的内容和“$”符号。想到的是这样的:
awk '{print $1" "$2" "...$35"$ "$36...$40}'
Run Code Online (Sandbox Code Playgroud)
它可以工作,但是因为当列数大到 10k 时它是不可行的。我需要一个更好的方法来做到这一点。
jas*_*yan 16
可能有更有效的方法来做到这一点。有这个警告:
awk '{$35 = $35"$"; print}' infile > outfile
Run Code Online (Sandbox Code Playgroud)
为了保留原来的 Field-Seprator,我这样做了。我想删掉的那一栏是 12 美元。
awk -F"\t" '{OFS=FS}{ $12="" ; print }' infile.txt > outfile.txt
Run Code Online (Sandbox Code Playgroud)
使用gawk -i
,如果您拥有它,您可以就地编辑文件。