这是我的输入文件(rpm.txt)的内容。
U25,1007
U27,1269
我希望我的代码使用此文件(rpm.txt)作为输入,将目录更改为U25,并在U25 / test.csv中搜索1007,并打印test.csv中与1007匹配的所有列;并重复每一行。
这是没有循环的代码:
cat U25/test.csv | awk -F ',' '$1 == 1007 {print $0}' > x
cat U27/test.csv | awk -F ',' '$1 == 1269 {print $0}' >> x
有人能帮我把它写成循环吗?
答案 0 :(得分:2)
怎么样?
while IFS=, read dir num; do
awk -v num="$num" ... '$1 == num ... ' <"$dir"/test.csv
done <rpm.txt >x
答案 1 :(得分:0)
通过创建grep "^1007," U25/test.csv
之类的命令并将它们提供给shell,这是一种没有任何循环的愚蠢方法:
sed 's!\(.*\),\(.*\)!grep "^\2," \1/test.csv!' input | sh