我有一个这种格式的文件:
字 1 :“字 2”字 3
我想删除“Word2”
那么文件必须是这样的:
字 1 : 字 3
我怎么能用 sed 做到这一点?
注意:Word2 是可变的
我有一个这种格式的文件:
字 1 :“字 2”字 3
我想删除“Word2”
那么文件必须是这样的:
字 1 : 字 3
我怎么能用 sed 做到这一点?
注意:Word2 是可变的
如果 input_file 中没有多余的内容,只需将每个引用的短语替换为空字符串:
sed 's/"[^"]*"//' input_file
如果 file.txt 是您的文件,您可以从命令行尝试:
sed -e "s_: \"[a-zA-Z0-9]*\" _: _g" -i file.txt
基于给定的输入。比如说,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
从命令行尝试
$ sed -i 's/\"Word2\"//g' /path/to/file.txt
如果 test 是您的文件,请尝试:
# cat test | sed -r 's/\".+\"\ //'