特定の文字で始まる行を抽出する方法は?

特定の文字で始まる行を抽出する方法は?

多くの行を含むtexfileがあります。たとえば、次のようになります。

AABBA, 10050, Tom marc Peter , POR
BBBAC, 10051, Eva braun, AUS
CCAHA, 10052, Jon murry , UDD
GGHAN, 10053, Taler yon, AGG
IIUSA, 10054, Raff paleen , EUS
UUGAS, 10055, Bara enty, ESP

姓がPで始まる人の行を抽出したい

出力:

AABBA, 10050, Tom marc peter , POR
IIUSA, 10054, Raff paleen , EUS

答え1

awk -F, '{ n=split($3,a," "); if(tolower(substr(a[n],0,1))=="p") print $0; }'

答え2

カンマの数とp / Pで始まる戻り単語に応じて、「すべての」正規表現プログラムを使用してこれを実行できます。例えば

grep -E '^([^,]+,){2,2}[^,]+[[:space:]][pP][^[:space:],]+[[:space:]]*,' mytextfile

与えられた

AABBA, 10050, Tom marc Peter , POR
IIUSA, 10054, Raff paleen , EUS

答え3

grep -ie' p[^, ]* *,[^,]*$'  \
<<""
AABBA, 10050, Tom marc Peter , POR
BBBAC, 10051, Eva braun, AUS
CCAHA, 10052, Jon murry , UDD
GGHAN, 10053, Taler yon, AGG
IIUSA, 10054, Raff paleen , EUS
UUGAS, 10055, Bara enty, ESP

AABBA, 10050, Tom marc Peter , POR
IIUSA, 10054, Raff paleen , EUS

関連情報