ある列で値を検索し、別の列からその値を印刷します。

ある列で値を検索し、別の列からその値を印刷します。

値を含むテキストファイルがあります。

1 Peter
2 Paul

2番目の列(Paulなど)をパラメータ値として使用し、最初の列(2)の対応する値を返すコマンド/スクリプトが必要です。

whileループを使用しようとするのに必要な値をどのように見つけますか?

while IFS= read -a line; do      
  printf "%s\n" "${line[@]}"     
done < "file.txt"

ベストアンサー1

GNU grepを使用してください:

grep -Po ".* (?=Paul)" file

出力:

2

またはbashを使用してください。

while read -r num name; do
  [[ $name == "Paul" ]] && printf "%s\n" "$num"
done < file

おすすめ記事