引用符 "" 内にのみ含まれるファイルのテキストのコピー

引用符 "" 内にのみ含まれるファイルのテキストのコピー

/etc/opendkim/keys/"$(hostname)"/default.txt次の内容が含まれています

default._domainkey IN TXT "v=DKIM1; r=postmaster; g=*; k=rsa; p=MIGfMA0GCSqGSIb3DQEBZZZZZZZZZZZZZZZZZZZZZZZZYVW/965FePDPfxTIUT5ScJ3mZZZZZZZZ8BWNgLFS6JtZZZZZZZZZZZZZZk7Sc+eQwY6tHAQvHczJTTkICB4WW9mtc5PlFAZNuC9X3oYTeIp8cpScBmaIaP+t35fwh+PL7ZZZZZZZZZZ3ZxoFsJD6pvCqx+TCbZZZZZZZZ5JQIDAQAB" ; ----- DKIM default for mydomain.com

v=DKIM1; r=postmaster; g=*; k=rsa; p=MIGfMA0GCSqGSIb3DQEBZZZZZZZZZZZZZZZZZZZZZZZZYVW/965FePDPfxTIUT5ScJ3mZZZZZZZZ8BWNgLFS6JtZZZZZZZZZZZZZZk7Sc+eQwY6tHAQvHczJTTkICB4WW9mtc5PlFAZNuC9X3oYTeIp8cpScBmaIaP+t35fwh+PL7ZZZZZZZZZZ3ZxoFsJD6pvCqx+TCbZZZZZZZZ5JQIDAQAB引用符の中の内容(除外)を別のファイルにコピーしたいと思います。

どうすればいいですか?

答え1

1行に引用符で囲まれた文字列が1つしかない場合、可能な最高のパフォーマンスソリューションは次のとおりですcut

cut -d\" -f2 <in >out

1行に複数の引用符付き文字列を使用できる場合は、次のことができます。

sed 's/[^"]*\("[^"]*"\)[^"]*/ \1 /g' <in >out

...これは、単に前後にスペースで区切られた行ごとに二重引用符で囲まれたすべての文字列を印刷します。

上記の解決策のどれもありませんその他の引用でも気づきました。たとえば、バックスラッシュでエスケープされた引用符やハード引用符に含まれる二重引用符文字列を無視しません。

答え2

sed 's/.*\"\(.*\)\".*/\1/' filename

関連情報