需要从文件中删除字符串 chr 和 % 符号
Need to remove the string chr and the % sign from the file
我有一个如下所示的文件
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
如果 %
是行中的最后一个字符,这在 sed 中很简单:
sed 's/^chr//; s/%$//' file
第一个命令从行首删除 chr
,第二个命令从行尾删除 %
。
如果您喜欢使用 OR 运算符,也可以组合这两个命令:
sed 's/^chr\|%$//g'
匹配两种模式中的任何一种 - 在这种情况下,我们还需要全局修饰符 g
以便可以对同一行进行两种修改。 |
运算符使用 \
进行转义。
要就地编辑文件,可以使用 -i
开关(如果有的话),或者使用标准技巧:
sed 's/^chr\|%$//g' file > tmp && mv tmp file
您可以使用 sed 或 perl。
sed 's/^chr\|%$//g' file
由于基本 sed 使用 BRE(基本正则表达式),正则表达式或运算符用 \|
.
表示
通过 perl。
perl -pe 's/^chr|%$//g' file
我有一个如下所示的文件
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
如果 %
是行中的最后一个字符,这在 sed 中很简单:
sed 's/^chr//; s/%$//' file
第一个命令从行首删除 chr
,第二个命令从行尾删除 %
。
如果您喜欢使用 OR 运算符,也可以组合这两个命令:
sed 's/^chr\|%$//g'
匹配两种模式中的任何一种 - 在这种情况下,我们还需要全局修饰符 g
以便可以对同一行进行两种修改。 |
运算符使用 \
进行转义。
要就地编辑文件,可以使用 -i
开关(如果有的话),或者使用标准技巧:
sed 's/^chr\|%$//g' file > tmp && mv tmp file
您可以使用 sed 或 perl。
sed 's/^chr\|%$//g' file
由于基本 sed 使用 BRE(基本正则表达式),正则表达式或运算符用 \|
.
通过 perl。
perl -pe 's/^chr|%$//g' file