给定一个文件integers
,其中包含由新行分隔的整数。例如:
1
39
77
109
137
169
197
229
261
293
可以使用以下代码迭代文件:
while read a
do
echo "$a"
done < integers
我正在寻找一个优雅的解决方案,以便循环同时采用两个整数并始终更新一步,这样:
while #some funny commands
do
echo "$a | $b"
done < integers
结果:
1 | 39
39 | 77
77 | 109
109 | 137
137 | 169
169 | 197
197 | 229
229 | 261
261 | 293
答案 0 :(得分:4)
{
read a
while read b; do
echo "$a | $b"
a=$b
done
} < file
输出:
1 | 39
39 | 77
77 | 109
109 | 137
137 | 169
169 | 197
197 | 229
229 | 261
261 | 293
答案 1 :(得分:4)
使用变量存储先前的值:
prev=
while read line; do
[[ ! -z $prev ]] && echo $prev "|" $line;
prev=$line;
done <file