파일의 첫 번째 열을 값과 비교하고 일치하면 레코드를 가져옵니다.

파일의 첫 번째 열을 값과 비교하고 일치하면 레코드를 가져옵니다.

다음 상황에 대해 누구든지 나를 도와줄 수 있습니까? 다음 데이터가 포함된 참조 파일이 있습니다.

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

입력을 file_id로 받아들이고 두 번째 열을 가져오는 스크립트가 있습니다.

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

관련 정보