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