我有一个如下所示的文本文件:
HETATM11584
HETATM 2514
HETATM22222
HETATM 8585
HETATM 1213
HETATM62626
HETATM 6754
HETATM 与一串数字之间有空格分隔。我想删除这些空格并输出一个如下所示的新文件:
HETATM11584
HETATM2514
HETATM22222
HETATM8585
HETATM1213
HETATM62626
HETATM6754
我尝试使用 sed
sed 's/.*HETATM [1-9]*.*/.*HETATM[1-9]*.*/' HETATM.txt > teste.txt
但是输出看起来是这样的:
HETATM11584
.*HETATM[1-9]*.*
HETATM22222
.*HETATM[1-9]*.*
.*HETATM[1-9]*.*
HETATM62626
.*HETATM[1-9]*.*
此操作的正确 sed 语法是什么?
最佳答案
如果整个文件像您的示例一样,最简单的方法是删除所有空格:
$ sed -r 's/ //g' file.txt
HETATM11584
HETATM2514
HETATM22222
HETATM8585
HETATM1213
HETATM62626
HETATM6754
如果文件由任何后跟空格和以数字结尾的内容组成,则可以这样做:
$ sed -r 's/ +([0-9]+)$/\1/g' file.txt
HETATM11584
HETATM2514
HETATM22222
HETATM8585
HETATM1213
HETATM62626
HETATM6754
关于linux - 使用 sed 删除特定空格的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46043247/