Linux 塞德:只是想删除一个子串

Linux 塞德:只是想删除一个子串,linux,shell,sed,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'命令 有什么帮助吗 Javi您需要: $ sed -r

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

foo: bar1
foo: bar2
foo: bar3
foo: bar4
foo: bar5
我想删除链“foo:”,因此文件保留:

bar1
bar2
bar3
...
我正在尝试:

$ sed 's/foo: /' file.txt
但它说:

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

有什么帮助吗

Javi

您需要:

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

对于此简单任务,您可以使用
cut

 cut -b 11- INPUTFILE


grep-Po'(?您的
文件

[jaypal:~/Temp] cat file
foo: bar1
foo: bar2
foo: bar3
foo: bar4
foo: bar5
[jaypal:~/Temp] cut -d";" -f2 file
bar1
bar2
bar3
bar4
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] cat file
foo: bar1
foo: bar2
foo: bar3
foo: bar4
foo: bar5
[jaypal:~/Temp] cut -d";" -f2 file
bar1
bar2
bar3
bar4
bar5

使用sed剥离子字符串然后复制到粘贴缓冲区的实际示例(linux)
在linux上扫描自动热键配置文件(很遗憾,linux没有自动热键)。“::”在AHK中用作分隔符

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

如果文件只有上面的内容,那么
sed's/*;//'file.txt
就足够了吗?@poton是的,那也可以。不过,IMHO最好更具体一些。你永远不知道,对吧?
-r
在这种情况下是不必要的,在
sed
的某些版本中是不可用的。