为什么 'cat' 根据我在一组文件名中指定“*”的位置进行不同的排序?
Why is 'cat' sorting differently based on where I specify a "*" in a set of filenames?
我有三组文件:
a1.txt, a2.txt, ... a10.txt
b1_m1.txt, b2_m1.txt, ... b10_m1.txt
b1_m2.txt, b2_m2.txt, ... b10_m2.txt
我想每组将所有三个连接在一起;我不在乎顺序,只要它们在各组中都相同即可。所以我这样做:
cat ./output/a*.txt > ./results/a.txt
cat ./output/b*_m1.txt > ./results/b_m1.txt
cat ./output/b*_m2.txt > ./results/b_m2.txt
...现在,看起来 a* 文件是这样连接的:
a0.txt, a1.txt, ... a10.txt
两组 b* 文件像这样连接起来:
b0_m1.txt, b10_m1.txt, b1_m1.txt, ...
是吗?为什么会这样?如何使两组文件以相同的方式排序? (仍在研究那个,可能会自己找到答案!)。谢谢!
我最终整理了顺序,在这里使用了 freddythunder 的回答:
How to append contents of multiple files into one file
这将按数字顺序连接两组文件:
for i in {0..N}; do cat "./output/a$i.txt" >> ./results/a.txt; done
for i in {0..N}; do cat "./output/b${i}_m1.txt" >> ./results/b.txt; done
其中 N 是文件总数。
我有三组文件:
a1.txt, a2.txt, ... a10.txt
b1_m1.txt, b2_m1.txt, ... b10_m1.txt
b1_m2.txt, b2_m2.txt, ... b10_m2.txt
我想每组将所有三个连接在一起;我不在乎顺序,只要它们在各组中都相同即可。所以我这样做:
cat ./output/a*.txt > ./results/a.txt
cat ./output/b*_m1.txt > ./results/b_m1.txt
cat ./output/b*_m2.txt > ./results/b_m2.txt
...现在,看起来 a* 文件是这样连接的:
a0.txt, a1.txt, ... a10.txt
两组 b* 文件像这样连接起来:
b0_m1.txt, b10_m1.txt, b1_m1.txt, ...
是吗?为什么会这样?如何使两组文件以相同的方式排序? (仍在研究那个,可能会自己找到答案!)。谢谢!
我最终整理了顺序,在这里使用了 freddythunder 的回答:
How to append contents of multiple files into one file
这将按数字顺序连接两组文件:
for i in {0..N}; do cat "./output/a$i.txt" >> ./results/a.txt; done
for i in {0..N}; do cat "./output/b${i}_m1.txt" >> ./results/b.txt; done
其中 N 是文件总数。