我的输入文件为:
11722550697,TEST_003,timi-export/do/ua.10451337354/11722550697
11724290732,TEST_001,timi-import/do/ca.10451337354/11724290732
11722550697,TEST_002,timi-export/do/vo.10451337354/11722550697
11724290735,TEST_005,timi-import/do/ka.10451337354/11724290732
11722550694,TEST_006,timi-import/do/tn.10451337354/11722550697
11724290733,TEST_007,timi-export/do/kl.10451337354/11724290732
我将从用户那里得到输入,我需要将其与每行csv文件中存在的第二个值(TEST_00 *)进行比较,然后获取第一个值,该值是该值的ID,以供以后使用处理。
注意:该文件包含此处提供的伪数据,实际数据相差很大。
答案 0 :(得分:2)
使用grep剪切:
grep '^[^,]*,'$user_input, input_file | cut -d, -f1
在脚本中,您可能会使用$1
而不是$user_input
。
答案 1 :(得分:2)
请您尝试以下。
cat ./script.ksh
echo "Please enter a value."
read value
awk -v val="$value" -F, '$2==val{print $1}' Input_file
以下将是脚本的执行。
./script.ksh
Please enter a value. ##here is where user is entering value.
TEST_003
11722550697
说明: 现在也添加了说明。
echo "Please enter a value." ##Using echo command for printing message for user.
read value ##Using read command from bash to accept value from user and keep it in value.
awk -v val="$value" -F, ' ##Starting awk program here -v val to keep bash variable in it and setting field separator as comma here.
$2==val{ ##Checking condition here if 2nd field value is equal to val here if yes then do following.
print $1 ##Printing first field here.
}' Input_file ##Mentioning Input_file name here.
答案 2 :(得分:1)
假设您需要完全匹配,请创建一个脚本,并说test.sh
并包含以下内容:
awk -v input="$1" -F',' '$2==input{print $1}' input_file.csv
然后,您可以按以下方式运行脚本:
sh test.sh TEST_003
其输出为:
11722550697