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