【发布时间】:2026-02-04 09:25:01
【问题描述】:
我有一个示例文件,如下所示:
示例.csv
Data_1,0,289,292,293,300,306
Data_2,0,294,3,306
Data_3,0,294,305,306
Data_4,0,294,305,306
我在上面运行 awk:
scr.sh:
awk -F ',' -v tId="$1" '{for(i=3; i<NF; i++){if($i==tId) print}}' $2
通过调用
./scr.sh 300 Sample.csv
这很好用,并返回我正好匹配的一行。
UK_4_AB34,0,289,292,293,300,306
原始问题陈述:从第 3 列开始,如果任何列数据与给定的数字匹配,则应打印该行。
但是如果我打电话:
./scr.sh 306 Sample.csv
这不会给我任何回报!
我仔细检查了 Sample.csv 中的行,并确认任何行上都没有尾随空格。
有什么线索吗?谢谢。
【问题讨论】:
-
awk 字段是从 1 开始的,所以也许 i
-
@jas 完全正确。
-
是的,我错过了。 i
标签: shell csv awk pattern-matching