gpt4 book ai didi

linux - 使用 sed 删除特定空格的正则表达式

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:45:48 26 4
gpt4 key购买 nike

我有一个如下所示的文本文件:

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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com