sed:只是想删除子字符串

时间:2011-12-02 13:23:47

标签: linux shell sed

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

foo: bar1
foo: bar2
foo: bar3
foo: bar4
foo: bar5

我想删除链“foo:”,因此文件仍为:

bar1
bar2
bar3
...

我正在尝试:

$ sed 's/foo: /' file.txt

但它说:

  

sed:-e表达式#1,字符15:未终止的's'命令

任何帮助?

哈维

5 个答案:

答案 0 :(得分:22)

你需要:

$ sed -r 's/^foo: //' file.txt

答案 1 :(得分:7)

您的file

[jaypal:~/Temp] cat file
foo: bar1
foo: bar2
foo: bar3
foo: bar4
foo: bar5

使用awk

[jaypal:~/Temp] awk -F";" '{print $NF}' file
bar1
bar2
bar3
bar4
bar5

使用sed

[jaypal:~/Temp] sed 's/.*;//' file
bar1
bar2
bar3
bar4
bar5

使用cut

[jaypal:~/Temp] cut -d";" -f2 file
bar1
bar2
bar3
bar4
bar5

答案 2 :(得分:2)

对于这个简单的任务,您可以使用cut

 cut -b 11- INPUTFILE

HTH

答案 3 :(得分:1)

awk -F';' '{print $2}' file

grep -Po '(?<=&nbsp;).*$' file

答案 4 :(得分:0)

使用sed剥离子字符串然后复制到粘贴缓冲区(linux)的实际示例
在linux上扫描Autohotkey配置文件(遗憾的是没有linux的autohotkey)。 &#39; ::&#39;在AHK中用作分隔符

grep -Eie "xxx::" AutoHotkey.ahk | sed 's/^.*:://' | xclip