我想删除一行中的单词。例如:
I want to delete one word in this line
我想删除'one'来获取:
I want to delete word in this line
通过变量传递单词。到目前为止我有:
WORD=one ; sed -n 's/"$WORD"//g' file.txt > newfile.txt
但是,它没有做任何事情。为什么不?我怎样才能让它发挥作用?
答案 0 :(得分:2)
WORD=one ; sed -e "s/$WORD//g" file.txt > newfile.txt
关键时刻是可变扩张。你必须要小心,因为shell变量扩展有时可能不是你想要的。在困难的情况下,你必须做这样的事情:
EXPANDVAR=one; NOEXPANDVAR=another; sed -e 's/'"$EXPANDVAR"'$NOEXPANDVAR//g' file.txt > newfile.txt
在这种情况下,sed将替换(删除)模式一个$ NOEXPANDVAR,字面意思。