11

これを使用している時点で、二重引用符で囲まれた文字列をgrepしようとしています

grep user file | grep -e "[\'\"]"

これにより、必要なファイルのセクションが表示され、二重引用符が強調表示されますが、二重引用符で囲まれることはありません。

4

4 に答える 4

19

これを試してみてください:

$ cat aaaa
foo"bar"base
$ grep -oP '"\K[^"\047]+(?=["\047])' aaaa
bar

高度な正規表現手法を使用します。

引用符も必要な場合:

$ grep -Eo '["\047].*["\047]'
"bar"

ノート :

\047

一重引用符の8進ASCII表現です

于 2013-03-15T14:37:42.827 に答える
8
$ cat aaaa
foo"bar"base

$ grep -o '"[^"]\+"'
"bar"
于 2013-03-15T14:43:48.723 に答える
3

試す:

grep "Test" /tmp/junk | tr '"' ' '

これにより、grepの出力から引用符が削除されます

または、次のことを試すことができます。

grep "Test" /tmp/junk | cut -d '"' -f 2

これは、引用符を区切り文字として使用します。選択するフィールドを指定するだけです。これにより、必要な情報を選択できます。

于 2013-03-15T14:41:18.183 に答える
0

これは私のために働いた。これにより、二重引用符を含むデータも出力されます。

 grep -o '"[^"]\+"' file.txt

二重引用符なしで印刷する場合は、grep出力をsedコマンドにパイプする必要があります。

grep -o '"[^"]\+"' file.txt | sed 's/"//g'
于 2018-11-30T05:54:21.130 に答える