真珠

真珠

このデータがあります。

photo for Kurtis Hardy" data-
photo for Paul Hoven" data-sr

中間名のみを取得するようにフィルタリングしたいと思います。このコマンドを使用して、次の行を取得します。

cat File| grep -E -o 'photo for.{0,20}'

ベストアンサー1

ここに猫は必要ありません。猫を放っておきます。

あなたの例のように、各名前は「写真」の後に始まり、最初の「」で終わると仮定します。そうでない場合はお知らせください。それ以外の場合は、「名前」と見なされるものについてもっと考える必要があります。

grep -E 'photo for [^"]{0,20}"' File | sed 's/photo for \([^"]\{0,20\}\)".*/\1/'

それとももっと簡単です:

sed -n 's/photo for \([^"]\{0,20\}\)".*/\1/p' File

おすすめ記事