ファイル名のサフィックスが最小のファイルを削除する

ファイル名のサフィックスが最小のファイルを削除する

名前は似ていますが、サフィックスの数が増えるファイルディレクトリがあります。サフィックスの低いファイルを削除し、サフィックスが最も高いファイルのみを維持したいと思います。以下はサンプルファイルのリストです。

1k_02.txt
1k_03.txt
1l_02.txt
1l_03.txt
1l_04.txt
2a_05.txt
2a_06.txt
4c_03.txt
4c_04.txt

上記のリストを次のファイルに減らす必要があります。

1k_03.txt
1l_04.txt
2a_06.txt
4c_04.txt

どこから始めるべきかわかりませんが、可能であればbashコマンドが欲しいです。

ベストアンサー1

複雑管路:

ファイルリスト:

$ ls
1l_04.txt 2a_05.txt 4c_03.txt 1k_03.txt 1l_02.txt 4c_04.txt 2a_06.txt 1l_03.txt 1k_02.txt

printf "%s\n" * | sort -t'_' -k1,1 -k2nr | awk -F'_' 'a[$1]++' | xargs rm

結果:

$ printf "%s\n" *
1k_03.txt
1l_04.txt
2a_06.txt
4c_04.txt

おすすめ記事