[英]read previous line using bash
使用 while 循環,我正在讀取一個文件,可以說:
string1
string2
string3
string4
string5
string6
發生的事情是因為我在 while 循環的第一次迭代中讀取了 string1 和 string2,第二次迭代從 string3 開始,第三次迭代從 string5 開始......等等
我已經嘗試尋找讀取可能具有的可能標志,但情況似乎並非如此。 我也試過 $Line1=$Line2 希望我可以指定我想讀哪一行
這是我的循環的樣子......
while read line1
do
read line2
done
我在循環的第一次迭代中讀取了 string1 和 string2,在我的第二次迭代中我想讀取循環的 string2 和 string3,第三次迭代的循環 string3 和 string4 等等.....有沒有辦法指定哪個行我想讀? 有沒有辦法讀取上一行或“重置”我的讀取指針 go 向后?
您可以通過存儲上一行來做到這一點。
#!/bin/bash
prev=
while read line
do
if [ ! -z "${prev}" ];then
line1="${prev}"
line2="${line}"
echo "${line1} ${line2}"
fi
prev="${line}"
done
string1 string2
string2 string3
string3 string4
string4 string5
string5 string6
您可以通過將所有文件存儲在數組中來嘗試此操作。
#!/bin/bash
b=(`cat filename`)
for i in $(eval echo {0..$[${#b[@]}-2]})
do
echo "${b[i]} ${b[i+1]}"
done
這里echo ${#b[@]}返回數組的長度。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.