sort.txt
次の内容を含むテキストファイルがあります。
2 Jack
2 Naomi
2 Tina
1 John
1 Tyler
で始まるすべての行を印刷したいのですが、2
問題は数字が必ずしもそうでない可能性が2
あります。最初の単語が最初の行と同じすべての行を印刷したいと思います。したがって、最初の単語が裏面3
で始まるすべての行を印刷します3
。私は成功せずにこれを試しました。
firstWord=awk '{print $1;}'
egrep "^$firstWord" sort.txt
ベストアンサー1
これはとても些細なことですawk
。変数の最初の行の最初の単語を取得し、その後の行の場合は、その変数を使用して最初の単語と一致し、その行のみを印刷します。
awk 'NR == 1 { fw = $1 } $1 == fw' sort.txt
この構成はNR == 1
入力ファイルの最初の行のみを取得し、各行に定義されている特殊区切り文字(スペースで区切られていません)はありません。最初のフィールドはからアクセスして$1
保存しますfw
。以降の条件は$1 == fw
各行を評価し、条件が満たされた場合にのみ返します。 true なので、行が印刷されます。