在我使用这个的那一刻,试图在双引号内 grep 一个字符串
grep user file | grep -e "[\'\"]"
这将到达我需要的文件部分并突出显示双引号,但它不会在双引号中给出刺痛
尝试这样做:
$ cat aaaa
foo"bar"base
$ grep -oP '"\K[^"\047]+(?=["\047])' aaaa
bar
我使用先进的正则表达式技术环顾四周。
如果你也想要引号:
$ grep -Eo '["\047].*["\047]'
"bar"
笔记 :
\047
是单引号的八进制 ascii 表示
$ cat aaaa
foo"bar"base
$ grep -o '"[^"]\+"'
"bar"
尝试:
grep "Test" /tmp/junk | tr '"' ' '
这将从 grep 的输出中删除引号
或者您可以尝试以下方法:
grep "Test" /tmp/junk | cut -d '"' -f 2
这将使用引号作为分隔符。只需指定要选择的字段。这使您可以挑选所需的信息。
这对我有用。这也将打印包括双引号的数据。
grep -o '"[^"]\+"' file.txt
如果我们想在没有双引号的情况下打印,那么我们需要将 grep 输出通过管道传递给 sed 命令。
grep -o '"[^"]\+"' file.txt | sed 's/"//g'