找到後,我想按基本名排序輸出(目錄數量未知)。我知道這可以通過拆分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. 排序文件名基於依賴
- 2. 如何按行排序文本文件?
- 3. 按文件名排序圖像
- 4. Delphi XE2按文件名排序Tstringlist
- 5. java按點名排序文件
- 6. 按文件名長度排序文件名
- 7. 如何排序,按降序排列的文件名與manageQuery
- 8. 按表名排序?
- 9. 按文件名的內容對文件進行排序
- 10. readdir按文件名排序,其中文件名是月份的名稱
- 11. 按列排序csv文件
- 12. 按列排序文件Linux
- 13. 按字排序文件
- 14. 查找基本文件名
- 15. 按名稱排序升序
- 16. 文本文件排序到
- 17. 的PHP文件名排序
- 18. KSH排序文件名
- 19. 如何按字母順序排序文本文件?
- 20. 如何在Android中按升序或降序按文件名或日期排序文件或文件夾?
- 21. 按文件列按批次排序
- 22. 合併排序中的基本條件
- 23. VB.NET排名基於排序的Excel列
- 24. 排除基本目錄(和文件名)的完整路徑
- 25. 排名前10位,但按字母順序排序,然後按排名。 SQL
- 26. 獲取按名稱文件排列的數組文件名c#
- 27. 巴什 - 文件名排序基於多個字段
- 28. 按名稱排列所有文件c#
- 29. 按ID排序然後按名稱比按名稱排序更快?
- 30. 按名稱排序elasticsearch
p.s.是的,這個basename_sort()函數可以用匿名塊和其他perl句法神祕主義來縮寫或消除..但是,它們都是嚴格的,並且爲了最佳的清晰度/簡單性而拼寫出大小寫不敏感。 – zanlok 2010-11-23 12:30:37
雖然basename並不意味着通常不區分大小寫。 – user502515 2010-11-23 12:40:47