我有一个看起来像这样的文件:
CHROM POS ID REF ALT
22 345 567 A G
22 454 666 T G
23 454 555 C C
23 565 777 G G
我想将其更改为:
CHROM POS ID REF ALT
22 345 567 A G
22 454 666 T G
X 454 555 C C
X 565 777 G G
即。在第1列中,我想用X交换23.我该怎么做?
感谢。
答案 0 :(得分:3)
在GNU sed
中你可以这样做:
sed -e 's/^23\>/X/' file.txt
或使用perl
:
perl -pe 's/^23\b/X/' file.txt
或使用awk
:
awk '{ if ($1 == 23) sub("23", "X"); print }' file.txt
如果要在替换后更新文件,则可以使用以下任何命令:
sed -i -e 's/^23\>/X/' file.txt
perl -pi -e 's/^23\b/X/' file.txt
答案 1 :(得分:2)
您是否可以访问任何脚本语言?一个perl或python脚本替换一个行开头后跟23一行开头后跟X将非常简单。
请参阅此答案:Find and Replace Inside a Text File from a Bash Command
就像......
perl -pi -e 's/^23\s/X /g' /tmp/file.txt