我有一個簡單的bash腳本,其中文件的內容被複制到文件A,如果行數低於10,則內容被複制到文件B
這裏的代碼:
# File A and B are created before, since I'm in a loop
# file content is different each time. I add it either to A or B corresponding the matching.
# I know I could use wc -l directly on the file too but I don't think the problem came from
# it since i've tested both.
let nblines=$(cat file | wc -l)
if [[ $nblines < 10 ]]; then
cat file >> A
else
cat file >> B
fi
的問題是,我的終端上,並在腳本,但並不總是這樣的工作。我有錯誤的目標文件中的內容文件。這裏我從A和B得到:
# "nombre de ligne" is number of lines
[email protected]:~$ cat A
7 nombre de lignes
7 nombre de lignes
7 nombre de lignes
5 nombre de lignes
5 nombre de lignes
6 nombre de lignes
6 nombre de lignes
6 nombre de lignes
5 nombre de lignes
5 nombre de lignes
76 nombre de lignes
77 nombre de lignes
[email protected]:~$ cat B
114 nombre de lignes
102 nombre de lignes
131 nombre de lignes
121 nombre de lignes
121 nombre de lignes
105 nombre de lignes
105 nombre de lignes
120 nombre de lignes
120 nombre de lignes
102 nombre de lignes
102 nombre de lignes
9 nombre de lignes
104 nombre de lignes
104 nombre de lignes
105 nombre de lignes
105 nombre de lignes
102 nombre de lignes
102 nombre de lignes
102 nombre de lignes
102 nombre de lignes
109 nombre de lignes
105 nombre de lignes
105 nombre de lignes
有人知道問題來自哪裏嗎? 感謝您的閱讀。
提示:如果你想捕捉工具的輸出(例如,用於張貼在網絡上),設置'LC_ALL = en_EN'使輸出以英文語言環境顯示。 – DevSolar 2014-11-06 09:43:50
一個好主意,如果你想檢查一個文件是否少於10行就是使用'head -n 10 file | wc -l而不是'cat file |如果可以確定該文件有10行或更多行,則wc -l(或'wc -l <file')提前結束'wc'。 – 2014-11-06 10:05:00