我有一个这种格式的文件:
Word1:“Word2”Word3
我想删除“Word2”
然后文件必须是这样的:
Word1:Word3
我怎么能用sed做到这一点?
注意:Word2可更改
答案 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