我想在单列中将一个字符串替换为另一个字符串。
输入:
A.a 1
A.b .
A.c 1
A.d 1
期望的输出:
A.a 1
A.b -9
A.c 1
A.d 1
使用 sed 's/\./-9/g' input > output
它将所有 .
修改为 -9
,并且这个这是我得到的:
A-9a 1
A-9b -9
A-9c 1
A-9d 1
如何仅在单个列 ($2) 上使用 sed
?
最佳答案
遵循awk
可能会对您有所帮助。
awk 'FNR==2{$2="-9"} 1' OFS="\t" Input_file
上面只会将 $2
值更改为 -9
,以防您需要交叉验证第二行的第二个字段是 。
并且您想要做出改变,那么只有下面的内容可能会对您有所帮助。
awk 'FNR==2 && $2=="."{$2="-9"} 1' OFS="\t" Input_file
或者
awk '$2=="."{$2="-9"} 1' OFS="\t" Input_file
附加 > temp_file && mv temp_file Input_file
以获取 Input_file 本身的输出。
关于bash - 如何在单列中使用 "sed",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49316247/