所以我试图分解一个列表并使用 awk 将数据放入单个文件中。到目前为止我有这个..但它不起作用:
#!/bin/bash
for i in "45" "64" "60" "70" "74" "76"
do
awk -v x="${i}" -F, '/x/ { print }' alluls.csv > $i.csv
done
echo "script has run"
但是..我得到所有空白文件
awk
变量不在内部评估/.../
;您将不得不使用该match
功能。
awk ... 'match($0, x) { print }'
执行此操作的明智方法只是一个 awk 命令(未经测试):
awk -v valS='45 64 60 70 74 76' '
BEGIN{ split(valS,valA) }
{
for (i=1; i in valA; i++)
if ($0 ~ valA[i])
print > (valA[i] ".csv")
}
END { print "script has run" }
' alluls.csv
您的正则表达式正在寻找文字“x”而不是变量值。