所以我试图打破一个列表并使用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"
然而..我得到所有空白文件
答案 0 :(得分:2)
awk
变量未在/.../
内评估;你必须使用match
函数。
awk ... 'match($0, x) { print }'
答案 1 :(得分:2)
这样做的明智方法只是一个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
答案 2 :(得分:0)
你的正则表达式正在寻找文字“x”而不是变量值。