双引号内的Grep字符串

时间:2013-03-15 14:34:31

标签: linux bash grep

在我使用此

时,尝试在双引号内grep一个字符串
grep user file | grep -e "[\'\"]"

这将到达我需要的文件部分并突出显示双引号,但它不会在双引号中给出刺痛

4 个答案:

答案 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'