如果我有一个名为“read7”的文件,其中包含一个数字列表,例如:
2
3
4
如何编写带有while循环的bash脚本来读取文件中的所有元素并对数字进行平方并将其作为标准输出发送?
因此,在运行脚本之后我们应该得到
的输出4
9
16
答案 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 comment,if 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