用sed删除指定字符之间的单词

时间:2012-07-18 08:31:00

标签: command-line sed

我有一个这种格式的文件:

Word1:“Word2”Word3

我想删除“Word2”

然后文件必须是这样的:

Word1:Word3

我怎么能用sed做到这一点?

注意:Word2可更改

5 个答案:

答案 0 :(得分:1)

如果input_file中没有额外的东西,只需用空字符串替换每个引用的短语:

sed 's/"[^"]*"//' input_file

答案 1 :(得分:0)

从命令行尝试

$ sed -i 's/\"Word2\"//g' /path/to/file.txt

答案 2 :(得分:0)

如果test是您的文件,请尝试:

# cat test | sed -r 's/\".+\"\ //'

答案 3 :(得分:0)

如果file.txt是您的文件,您可以从命令行尝试:

sed -e "s_: \"[a-zA-Z0-9]*\" _: _g" -i file.txt

答案 4 :(得分:0)

基于给定的输入。比方说,Word2可以是任何东西,但Word1和Word3是固定的。 sed / awk oneliner可以完成这项工作4 u:

kent$  echo 'Word1 : "Word2" Word3'|sed -r 's/(Word1 :) "[^"]*"( Word3)/\1\2/g' 
Word1 : Word3


kent$  echo 'Word1 : "Word2" Word3'|awk -F"\"" '{print $1,$3}' 
Word1 :   Word3