使用 sed 时如何转义双引号?

发布于 2024-12-04 09:59:57 字数 524 浏览 1 评论 0原文

我正在尝试删除包含双引号的所有文本行,并且我已经尝试过:
sed -ne '/\"/!p' theinput > theproduct
它使线条保持不变。我该怎么办?这是我的脚本: `触摸tmp.txt 打开tmp.txt read -sn 1 -p "粘贴数据并按任意键进行转换" echo

touch tmp.txt
open tmp.txt
read -sn 1 -p "Paste in data and press any key to convert"
echo
sed -e 's/-/                             /g' tmp.txt > tmp2.txt
grep -v '"' tmp2.txt > final.txt
open final.txt
echo Study Conversion Successful

第一个 sed 命令有效。它用一堆空格替换连字符(不要问我为什么需要它)。我从响应中添加的 grep 命令不起作用。它使带引号的行保持不变。

I'm trying to remove all lines of text that contain a double quote, and I have tried this:
sed -ne '/\"/!p' theinput > theproduct
It left the lines untouched. What do I do? Here is my script:
`touch tmp.txt
open tmp.txt
read -sn 1 -p "Paste in data and press any key to convert"
echo

touch tmp.txt
open tmp.txt
read -sn 1 -p "Paste in data and press any key to convert"
echo
sed -e 's/-/                             /g' tmp.txt > tmp2.txt
grep -v '"' tmp2.txt > final.txt
open final.txt
echo Study Conversion Successful

The first sed command works. It replaces a hyphen with a bunch of spaces (don't ask why I need that). The grep command, which I added from a response, does not work. It leaves the lines with quotes untouched.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

古镇旧梦 2024-12-11 09:59:57

没有必要转义双引号:

sed -ne '/"/!p' theinput > theproduct

Its not necessary to escape the double quote:

sed -ne '/"/!p' theinput > theproduct
阳光的暖冬 2024-12-11 09:59:57

很奇怪。它“对我有用”

$ cat data.txt
dsklfljs
sdjflk"Sdgsd"
sdfj sldkfj "Sdfsd"
sdfj 
sdf
sdjflks
$ sed -ne '/\"/!p' data.txt
dsklfljs
sdfj 
sdf
sdjflks

也许是 sed 的版本问题?

但是,您也可以考虑使用 grep -v 来实现此目的。

$ grep -v '"' data.txt
dsklfljs
sdfj 
sdf
sdjflks

Very strange. It "works for me"

$ cat data.txt
dsklfljs
sdjflk"Sdgsd"
sdfj sldkfj "Sdfsd"
sdfj 
sdf
sdjflks
$ sed -ne '/\"/!p' data.txt
dsklfljs
sdfj 
sdf
sdjflks

Perhaps it is a version issue with sed?

However, you can also consider using grep -v for this.

$ grep -v '"' data.txt
dsklfljs
sdfj 
sdf
sdjflks
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文