需要从文件中删除字符串chr和%符号

时间:2015-03-26 10:18:57

标签: awk sed

我有一个如下所示的文件

chrM    152 165 45  21.43%
chrM    13811   324 70  17.77%
chr1    1669566 47  14  22.95%
chr1    1685929 144 33  18.64%

我想从文件中删除字符串chr%符号。这是一个tab分隔文件。我该如何在这里使用sed命令?

我的输出应该是:

M   152 165 45  21.43
M   13811   324 70  17.77
1   1669566 47  14  22.95
1   1685929 144 33  18.64

2 个答案:

答案 0 :(得分:3)

您可以使用sed或perl。

sed 's/^chr\|%$//g' file

由于基本sed使用BRE( Basic Regular expression ),因此regex OR运算符由\|表示。

通过perl。

perl -pe  's/^chr|%$//g' file

答案 1 :(得分:2)

如果%是该行的最后一个字符,这在sed中很简单:

sed 's/^chr//; s/%$//' file

第一个命令从行的开头删除chr,第二个命令从结尾删除%

如果您想使用OR运算符,也可以组合这两个命令:

sed 's/^chr\|%$//g'

两种模式中的任何一种匹配 - 在这种情况下,我们还需要全局修饰符g,以便可以对同一行进行两种修改。 |运算符使用\进行转义。

要编辑文件,您可以使用-i开关(如果有),或执行标准技巧:

sed 's/^chr\|%$//g' file > tmp && mv tmp file