我需要使用 Linux 命令行替换一些文本:
我有一些文件:
-------------------
line 1
line 2,2
line 3_4
-------------------
我有一个部分解决方案:
sed -i 's/line 1/my line 1/g' /my/file
这可行,但当我尝试替换第 2 行和第 3 行时,它不起作用。我得到:
-------------------
line 1
my line 2,2
my line 3_4
-------------------
我需要:
-------------------
line 1
my line 2
my line 3
-------------------
有没有一种简单的方法可以使用 reg exp 来解决这个问题?
最佳答案
您可以使用此 sed 命令:
sed 's/^ *\(line [0-9]\+\).\+$/my \1/' file
line 1
my line 2
my line 3
如果您想内联编辑此文件,请使用:
sed -i.bak 's/^ *\(line [0-9]\+\).\+$/my \1/' file
关于regex - 使用正则表达式更改 bash 中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20619869/