shell腳本相關

問題1:同時讀取兩個文件的相同行,並將兩個文件的行插入到同一文本

# cat aa
a1
a2
a3
a4
# cat bb
b1
b2
b3/
# vim aa.sh
#!/bin/bash
while read -u3 i && read -u4 j;
do
echo $i $j
done >cc 3<aa 4<bb
# ./aa.sh
# cat cc
a1 b1
a2 b2
a3 b3/


注意
read -u3 i代表從文件描述符3中讀取內容,並將該值內容賦值給$i變量。
 3<aa 代表從aa中讀取內容,並重定向到文件描述符3中
 >cc 代表將while執行的結果重定向輸出到cc中
 將3<aa 4<bb寫在while之後,相當於只對 while 語句進行重定向,while結束後,3,4 就沒有了。 如果在 while 前面用 exec 3<aa  4<bb 了話,從 exec 之後直到腳本結束,重定向的3,4都一直存在。如果只在 while 中需要用 aa,bb,那現在的寫法就是最好的。 如果想在 while 後繼續訪問,那麼可以考慮用 exec 3<aa 的方式。
 該語句整體流程爲:
 不斷從 aa和 bb 中分別讀取內容到i , j 中,然後用echo 打印出來,並將結果不斷的追加到cc中。 這個循環會一直執行直到遇到 aa 或bb 中至少任意一個的文件尾。 
該腳本可用於合併,拼接多個文本內容

很久沒用51cto寫東西了,因爲感覺編輯器很不好用,這麼久了再次使用發現原來還是不好用,也許我不會用吧。
我這個腳本格式如何取消啊?找了半天找不到取消辦法。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章