使用正则表达式更改bash中的行

时间:2013-12-16 20:04:37

标签: regex linux bash command-line

我需要使用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来解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

您可以使用此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