見つけたら、ベース名(ディレクトリの数は不明)で出力をソートしたいと思います。私はdirnameからbasenameを分割してソートすることでこれを行うことができますが、ソートの前にデータを変更する必要がない場所を探しています。 sort --field-separator='/' -k '-1'
のようなものです。ベース名でファイルをソート
2
A
答えて
0
単純にベース名を文字列の先頭に移動し、ソートして元に戻すという解決方法で解決しました。実際に私が望んでいたものではありませんが、それは奇妙なファイル名でも機能します。
1
この作業では、perlとカスタムソート機能を使用します。 basename_sort.pl以下のようにPerlコードを保存し、0755それをchmodの、そしてあなたは、このようなあなたのように、要求されてきたようにコマンドを実行することができます。もちろん
find | grep "\.php" | ./basename_sort.pl
、あなたがあればどこかでそのユーティリティを移動したいと思いますそれは非常に頻繁にやります。さらに、.bashrcファイル内で関数をラップすることをお勧めします。 (トピックに載っていれば、そのコードは含まれていません)
#!/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}<>'
+0
まさに一種の神秘主義対実用主義の問題です。私はまだそれのsh関数を見たいと思います – zanlok
関連する問題
- 1. ファイル名をファイル名の長さでソート
- 2. ファイルのベース名なしでファイルのパスを返す方法は?
- 3. ベース名のないファイルへのパス
- 4. 時間ベースのOracleでの列のソート
- 5. すべて同じベース名のファイルの名前を変更
- 6. GNU検索:ベース名私はベース名に一致するregexsでファイルを検索するだけ
- 7. Pythonのソート - 特定のファイル名
- 8. 複数の属性にArrayListベースをソート
- 9. 複数のファイルを共通のベース名でプロットする
- 10. ファイル名を知らずにソートされたファイルをマージする
- 11. bashでベース名とサイズ
- 12. プロパティ名でJavaScriptオブジェクトをソート
- 13. 名前でFileSystemInfo []をソート
- 14. ファイル名に基づいてファイルをソートPython
- 15. 最後の整数の "ソート"ベースを使って文字列のファイルをソートする方法は?
- 16. PHP - ファイル名の配列を数値でソートする?
- 17. Powershell:名前の最初の文字でファイルをソート
- 18. なっベース名は、/
- 19. batchnumberベースのmysql名
- 20. URLのベース名を変更
- 21. ファイル名をベースと拡張子に分割する方法
- 22. GNOMEのようなファイル名でのBashソート
- 23. アルファベットでTableViewベースのセルをソートする方法は? (CoreData)(スウィフト3)
- 24. idでソートしてから名前でソートするのは名前でソートするより速いですか?
- 25. MongoDB別名とソート
- 26. nsurlからファイル名にアクセスし、ベース64に変換する
- 27. tomcatのログローテーション現在のファイルの固定名とアーカイブの日付ベースの名前
- 28. ファイルからuniqの名前をソートしてカウントするPython
- 29. lsはどのようにファイル名をソートしますか?
- 30. ダイナミック@Table名(入力ベース)
p.s.確かに、basename_sort()関数は、無名ブロックや他のperlの構文的な神秘に短縮されたり、取り除かれたりすることができます。 – zanlok
basenameは大文字と小文字を区別しません。 – user502515