我有一个看起来像这样的文件:
1 mm10_rmsk exon 67108753 67108881 239.000000 + . gene_id "RLTR17B_Mm"; transcript_id "RLTR17B_Mm";
1 mm10_rmsk exon 134217652 134217732 230.000000 - . gene_id "BC1_Mm"; transcript_id "BC1_Mm";
M mm10_rmsk exon 16776989 16779051 32159.000000 + . gene_id "L1_Mus1"; transcript_id "L1_Mus1";
M mm10_rmsk exon 33554409 33554640 216.000000 - . gene_id "B4"; transcript_id "B4";
那里大约有几百万行,我想将第一列中的“M”更改为“MT”。我知道我应该使用sed
orawk
但在文件中其他地方有几个“M”,我只想更改第一列中的那些。那么有人建议如何指定对一列的更改吗?感谢您的帮助 :)
答案1
如果您告诉 sed 采取 M 并以 ^M 开头,则可以更改它们。
sed -i "s/^M/MT/g" filename
解释:
- 将
-i
指示 sed 替换文件中的条目。-i.bak
如果您想备份原始文件,可以使用。 ^M
将指示sed
仅匹配以 开头的行M
。