我有一个单列文件,其值如下:
40
58
76
Run Code Online (Sandbox Code Playgroud)
我想制作一个脚本来单独读取所有这些值,但我不知道通过 Bash 脚本执行此操作的方法。
我想要回声显示是这样的:
LINE 1 : value 40
LINE 2 : value 58
LINE 3 : value 76
Run Code Online (Sandbox Code Playgroud)
对于这样的事情,你可以使用awk
:
$ awk '{print "LINE", NR, ": value", $0}' file
LINE 1 : value 40
LINE 2 : value 58
LINE 3 : value 76
Run Code Online (Sandbox Code Playgroud)
awk
一次自动读取一行。NR
保存行号和行$0
的全部内容,因此您只需要打印它们。
但如果你真的想要 Bash,可以这样说:
line=1
while IFS= read -r value; do
echo "LINE $line : value $value"
(( line ++ ))
done < file
Run Code Online (Sandbox Code Playgroud)
这file
使用while
带有< file
. 每个循环,一行的值存储在变量中$value
。然后,打印结果并增加变量$line
以跟踪行号。
在 BashFAQ 中查看更多信息:如何逐行(和/或逐字段)读取文件(数据流、变量)?.