列を検索して結果行を表示する方法

列を検索して結果行を表示する方法

次の内容を含むファイルがあります。

commA6314   ifosfamide   0     12
home5341209 urokinase    6314  37

最初の列を検索して行全体を表示するにはどうすればよいですか?たとえば、ユーザーが検索する場合(6314最初の行の最初の列に1つがあり、3番目の列と2番目の行に別の1つがある場合)、出力は次のようになります。63146314

commA6314   ifosfamide   30     12

答え1

これは典型的なユースケースです。awk

awk '$1 ~ /6314/' file

または、一致させたいパターンを変数として渡す場合

awk -v pat="6314" '$1 ~ pat' file

Perlの同様の方法

perl -ane 'print if $F[0] =~ /6314/' file

関連情報