我使用sed删除部分字符串,但sed中使用的正则表达式与其他编程语言略有不同。 这是要处理的句子:
"{\cs6\f1\cf6\lang1024 little} G{\cs6\f1\cf6\lang1024 }EDFW, {\cs6\f1\cf6\lang1024 one two}i{\cs6\f1\cf6\lang1024 </span><span>} {\cs6\f1\cf6\lang1024 </span><span>}= {\cs6\f1\cf6\lang1024 </span><span>}G{\cs6\f1\cf6\lang1024 </span><span>}TOTW, {\cs6\f1\cf6\lang1024 </span><span>}i{\cs6\f1\cf6\lang1024 </span>}"
我想要删除像{\cs6\f1\cf6\lang1024}
这样的字符串(模式如({\ sth)*(keep)})并保留空格后跟随的内容,例如<span>
我试过了:
sed 's/{[^\\.* (.*)}]*}/\1/g'
输出应该如下:
little GEDFW, one twoi</span><span> </span><span>=</span><span>G</span><span>TOTW, </span><span>i</span>
但似乎&#34;。&#34;包括空间和我试图捕捉最小匹配的方式没有用。任何人都可以帮助我吗?
答案 0 :(得分:0)
删除不需要的部分会更容易:
sed 's/{\\cs6\\f1\\cf6\\lang1024 *//g; s/}//g' input_file