在bash中读取时动态找出数量的args

时间:2015-09-16 22:48:46

标签: bash arguments

让我们在file1中说我每行都有随机数字, while read是否有办法知道每行有多少 应该读,在这里我硬编了三个:

while read w1 w2 w3
do
    # grep [some regex] file2
done <<< $(awk '{print $0}' file1)

但是想知道是否有可能有这样的东西:

while read [*words] #as many as they are for the current line I am getting from awk
    ...
    ...
done <<< $(awk '{print $0}' file1)

这是可能的,无需在单独的文件中编写更复杂的脚本, 但直接从终端运行?

2 个答案:

答案 0 :(得分:3)

将它们读入数组。然后,您可以使用正常的数组技术。

while read -a words
   ...
done < file1

答案 1 :(得分:1)

显而易见的方式:

while read words; do
    for word in $words; do ...; done
done < file1