微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

linux – 在Bash中按数字文件名排序的文本文件

有没有办法用一个bash命令以文件名的数字顺序连接多个文本文件

我尝试了这个,但由于某种原因,前三行不按顺序排列

sort -n *txt > all.txt

解决方法:

添加此答案,仅因为currently accepted answer建议a bad practice.&将来,Hellmar可能会遇到完全相同的问题I faced once.Cannot delete an accepted answer.

无论如何,这应该是安全的答案:

printf "%s\0" *txt | sort -zn | xargs -0 cat > all.txt

这里,整个管道具有由NULL字符分隔的文件名. NULL字符只是不能成为文件名一部分的字符.

此外,如果所有文件名具有相同的结构(例如file0001.txt,file0002.txt等),那么这段代码应该同样好用:

cat file[0-9][0-9][0-9][0-9].txt > all.txt

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐