Bash
cat ~/foo* > ~/results/output.txt
會保留 ~/foo*
的順序嗎?
我有數百個表格文件
~/foo.x.y
。這些文件是~/foo.0001.0010 ~/foo.0011.0020 ~/foo.0021.0030 ... ~/foo.4371.4378
我想將所有這些文件組合成一個
~/results/output.txt
保留順序的大文件。我相當肯定$ cat ~/foo* > ~/results/output.txt
完成了這個,但我不確定這個命令是否會尊重我的
foo
文件的順序。這個命令有用嗎?如果沒有,我該如何完成我的任務?
cat
將遵循參數的順序,如果您展開~/foo*
(在某些 shell 中使用雙製表符或echo ~/foo*
),您將看到該順序。
*
萬用字元的順序是字母順序。SO globbing 問題: https ://superuser.com/questions/192280/does-bashs-match-files-in-alphanumeric-order
來自
man bash
:After word splitting, unless the -f option has been set, bash scans each word for the characters *, ?, and [. If one of these characters appears, then the word is regarded as a pattern, and replaced with an *alphabetically* sorted list of filenames matching the pattern
注意
alphabetically
。在您的情況下,它將是:$ cat foo.0001.0010 foo.0011.0020 foo.0021.0030
您可以在鍵入後和按之前
*
使用C
-展開。x
*``*``Enter