ファイルの最初の列を値と比較し、一致するとレコードを取得します。

ファイルの最初の列を値と比較し、一致するとレコードを取得します。

次の状況について誰でも私を助けることができますか?次のデータを含む参照ファイルがあります。

file_id|file_name
1|file1.txt
2|file2.txt
3|file3.txt

入力をfile_idとして受け入れ、2番目の列を取得するスクリプトがあります。

file_id=$1
header=$(awk -v a=$file_id -F '~' "$1==a {print $2}" \
/test/data/shared/dev/SrcFiles/datawarehouse/poc/file_ref_master.txt)

これにより、ファイル名の代わりに空の値が提供されます。

出力:

vi file_lookup_poc.sh
$ sh -x file_lookup_poc.sh 1

file_id=1
++ awk -v a=$file_id -F '~' '$1==a {print $7}' /test/data/infa_shared/dev/poc/file_ref_master.txt
header=
echo

答え1

スクリプト

#!/bin/bash
m=$1
awk -F "|" -v m="$m" '$1 == m{print $2}' filename

出力

sh script.sh 1
file1.txt
 
sh script.sh 2
file2.txt

sh script.sh 3
file3.txt

関連情報