任何人都可以帮助我解决以下情况吗?我有一个参考文件,其中包含以下数据:
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