找到後,我想按基本名排序輸出(目錄數量未知)。我知道這可以通過拆分dirname中的基本名稱並對其進行排序來完成,但是我特意尋找某種不需要在排序前修改數據的內容。類似sort --field-separator='/' -k '-1'
。按基本名排序文件
Q
按基本名排序文件
2
A
回答
0
結束了一個解決方案,只需將基本名稱移動到字符串的起始位置,排序並將其移回。不是我真正希望的,但它甚至可以用怪人的文件名稱。
1
對於這個任務,我會轉向perl和使用自定義排序功能。下面保存Perl代碼爲basename_sort.pl,文件模式是0755,那麼你可以執行命令,如您的要求,如:
find | grep "\.php" | ./basename_sort.pl
當然,你會想,如果你移動到某處效用'經常這樣做。更好的是,我還建議在你的.bashrc文件中包裝一個函數。 (留在主題上,不包括sh代碼)
#!/usr/bin/perl
use strict;
my @lines = <STDIN>;
@lines = sort basename_sort @lines;
foreach(@lines) {
print $_;
}
sub basename_sort() {
my @data1 = split('/', $a);
my @data2 = split('/', $b);
my $name1 = $data1[@data1 - 1];
my $name2 = $data2[@data2 - 1];
return lc($name1) cmp lc($name2);
}
0
這可以寫得更短。
find | perl -e 'print sort{($p=$a)=~s!.*/!!;($q=$b)=~s!.*/!!;$p cmp$q}<>'
相關問題
- 1. C#名單及排序按文件名
- 2. 排序文件名基於依賴
- 3. 按周排名按排名排序
- 4. 如何按行排序文本文件?
- 5. 如何在PHP中按名字排序文本文件內容?
- 6. 按編號排序文件名
- 7. java按點名排序文件
- 8. 按文件名在Python排序列表
- 9. 按文件名排序圖像
- 10. Delphi XE2按文件名排序Tstringlist
- 11. 如何使用c#按文件名按日期排序文件?
- 12. 按文件名長度排序文件名
- 13. 如何排序,按降序排列的文件名與manageQuery
- 14. 按名稱排序文件返回未排序的數組
- 15. 按名稱排序kaltura基本條目列表
- 16. 基於文件名排序271,568文件在Bash中
- 17. 如何正確排序基於文件名的文件
- 18. 基數按降序排序
- 19. C#按文本文件的順序排列文本框
- 20. 按表名排序?
- 21. 目錄中的文件按文件名升序排列
- 22. 按文件名的內容對文件進行排序
- 23. 按日期和文件名將文件排序到目錄
- 24. readdir按文件名排序,其中文件名是月份的名稱
- 25. 查找基本文件名
- 26. 按日期排序文件
- 27. 按字排序文件
- 28. 按列排序csv文件
- 29. 按列排序文件Linux
- 30. 的PHP文件名排序
p.s.是的,這個basename_sort()函數可以用匿名塊和其他perl句法神祕主義來縮寫或消除..但是,它們都是嚴格的,並且爲了最佳的清晰度/簡單性而拼寫出大小寫不敏感。 – zanlok 2010-11-23 12:30:37
雖然basename並不意味着通常不區分大小寫。 – user502515 2010-11-23 12:40:47