使用bash脚本从文件中读取元素

时间:2013-12-02 08:11:09

标签: linux bash unix

如果我有一个名为“read7”的文件,其中包含一个数字列表,例如:

2
3
4

如何编写带有while循环的bash脚本来读取文件中的所有元素并对数字进行平方并将其作为标准输出发送?

因此,在运行脚本之后我们应该得到

的输出
4
9
16

3 个答案:

答案 0 :(得分:2)

尝试awk:

awk '{print $1*$1}' read7

答案 1 :(得分:2)

您不需要使用while循环。使用awk

$ cat read7
2
3
4
$ awk '{print $1*$1}' read7
4
9
16

答案 2 :(得分:2)

如果您想使用while循环,可以说:

while read -r i; do echo $((i*i)); done < read7

对于您的输入,它会发出:

4
9
16

根据your commentif the file has words and numbers in it. How do I make it read just the numbers from the file?。你可以说:

while read -r i; do [[ $i == [0-9]* ]] && echo $((i*i)); done < read7

对于包含以下内容的输入文件:

2
foo
3
4

它会产生:

4
9
16