我需要在文本文件中删除所有引号,这些引号字符串始终以相同的方式开头,但以不同的方式结束:
'something.with.quotation.123' must be something.with.quotation.123
'something.with.quotation.456' must be something.with.quotation.456
但不应更改不以此为开头的引用字符串。
我一直在找一个发现&打印引用的字符串:
grep -o "something\.with\.quotation\.[^']*" file.txt
现在我需要将结果传递给sed通过管道,但它不起作用:
grep -o "something\.with\.quotation\.[^']*" file.txt | sed -i "s/'$'/$/g" file.txt
我一直在尝试其他选项("s/\'$\'/$/g"
,"s/'\\$'/\\$/g"
,...)和谷歌搜索,但没办法。
您能否指出我在sed中从管道获取结果的正确方法?
答案 0 :(得分:2)
此处您不需要grep
。只需像这样使用sed
:
cat file
'something.with.quotation.123'
'something.with.quotation.456'
'foo bar'
sed -E "s/'(something\.with\.quotation\.[^']*)'/\1/g" file
something.with.quotation.123
something.with.quotation.456
'foo bar'