FOOBAR_1A.8_Alice.pdf
FOOBAR_1A.9_Bob.pdf
FOOBAR_1B.10_Foo.pdf
FOOBAR_1B.11_Bar.pdf
FOOBAR_1B.12_Jack.pdf
FOOBAR_1B.1_Jill.pdf
FOOBAR_1B.2_John.pdf
FOOBAR_1B.3_Mary.pdf
为了实现上述排序顺序,我进行了第一个排序迭代,如下所示:
找 . -type f -name“ * .pdf” -print |切-d’/’-f2 |分类
但是正如您所看到的,2012年10月11日打印在1/2/3之前.
我尝试将管道重新排序:
找 . -type f -name“ * .pdf” -print |切-d’/’-f2 |排序排序-t’. -k 2n
FOOBAR_1A.7_Alice.pdf
FOOBAR_1B.7_Bob.pdf
FOOBAR_2A.7_John.pdf
FOOBAR_2B.7_Mary.pdf
FOOBAR_2C.7_Foo.pdf
FOOBAR_1A.8_Bar.pdf
FOOBAR_1B.8_Jack.pdf
FOOBAR_2A.8_Jill.pdf
因此,总而言之,我想要的排序输出是:
> FOOBAR_NA.N应该按数字排序,第一个字符(即FOOBAR_1,然后是FOOBAR_2,依此类推)
>然后,FOOBAR_NA.N应该按第二个字母的字母顺序排序(即FOOBAR_1A然后是FOOBAR_1B,依此类推)
> FOOBAR_NA.N最终应按第一个点后的数字排序(即FOOBAR_1A.1,然后是FOOBAR_1A.2,依此类推)
解决方法:
您可以尝试-V(按版本排序):
find . -name '*.pdf' | cut -d'/' -f2 | sort -t _ -k2V
FOOBAR_1A.8_Alice.pdf
FOOBAR_1A.9_Bob.pdf
FOOBAR_1B.1_Jill.pdf
FOOBAR_1B.2_John.pdf
FOOBAR_1B.3_Mary.pdf
FOOBAR_1B.10_Foo.pdf
FOOBAR_1B.11_Bar.pdf
FOOBAR_1B.12_Jack.pdf
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。