sed:只是想删除子字符串

use*_*220 12 linux shell sed

我有一个包含以下内容的文件:

foo: bar1
foo: bar2
foo: bar3
foo: bar4
foo: bar5
Run Code Online (Sandbox Code Playgroud)

我想删除链"foo:"所以文件仍然是:

bar1
bar2
bar3
...
Run Code Online (Sandbox Code Playgroud)

我正在尝试:

$ sed 's/foo: /' file.txt
Run Code Online (Sandbox Code Playgroud)

但它说:

sed:-e expression#1,char 15:unterminated`s'命令

有帮助吗?

哈维

aef*_*fxx 23

你需要:

$ sed -r 's/^foo: //' file.txt
Run Code Online (Sandbox Code Playgroud)

  • 在这种情况下,`-r`不是必需的,并且在某些版本的`sed`中不可用. (5认同)
  • 如果文件只有上面的内容,那就不会'sed's /.*; //'file.txt`就够了吗? (2认同)

jay*_*ngh 7

您的 file

[jaypal:~/Temp] cat file
foo: bar1
foo: bar2
foo: bar3
foo: bar4
foo: bar5
Run Code Online (Sandbox Code Playgroud)

使用awk:

[jaypal:~/Temp] awk -F";" '{print $NF}' file
bar1
bar2
bar3
bar4
bar5
Run Code Online (Sandbox Code Playgroud)

运用 sed

[jaypal:~/Temp] sed 's/.*;//' file
bar1
bar2
bar3
bar4
bar5
Run Code Online (Sandbox Code Playgroud)

运用 cut

[jaypal:~/Temp] cut -d";" -f2 file
bar1
bar2
bar3
bar4
bar5
Run Code Online (Sandbox Code Playgroud)