大家好我對遊戲非常陌生,所以我的問題可能很簡單,但我很長一段時間都陷在這個問題中。我想從兩個文件列表中逐行處理兩個文件。從兩個文件中逐行讀取並同時處理它們
我想目前:
read file1 && read file2;
do
echo "$file1 and $file2"
done
回聲當然只是爲腳本的其餘部分spaceholder,但我沒能得到任何變量進行讀操作。
大家好我對遊戲非常陌生,所以我的問題可能很簡單,但我很長一段時間都陷在這個問題中。我想從兩個文件列表中逐行處理兩個文件。從兩個文件中逐行讀取並同時處理它們
我想目前:
read file1 && read file2;
do
echo "$file1 and $file2"
done
回聲當然只是爲腳本的其餘部分spaceholder,但我沒能得到任何變量進行讀操作。
LINECOUNTER=1
while true; do
FILE1INPUT="$(sed -n "${LINECOUNTER}p" file1.txt)"
FILE2INPUT="$(sed -n "${LINECOUNTER}p" file2.txt)"
echo "$FILE1INPUT and $FILE1INPUT"
let LINECOUNTER=LINECOUNTER+1
done
$(sed ...)
的輸出分配給變量FILE1INPUT的 。此sed命令只讀取一行,由LINCEOUNTER從file1.txt指定 。與file2.txt一樣當然,需要一個適當的條件讓while循環結束。
沒有理由爲每個文件的每一行運行'sed'。 – chepner
您需要兩個單獨的文件描述符來一次讀取兩個文件。其中之一可以是標準輸入。
while IFS= read -r line1 && IFS= read -r line2 <&3; do
echo "File 1: $line1"
echo "File 2: $line2"
done < file1 3< file2
既然這是bash,也可以用'read -u3 line2' –
http://stackoverflow.com/a/15461247/1030675 – choroba
您錯過了'while'關鍵字。 – chepner