lsコマンドで出力される一連のファイルを、ABCDE1234A1789.RST.txt
またはのいずれかのパターンに一致するように数字列で並べ替えようとしています( '789
'フィールド)。可変長のファイル名内でbash sortコマンドを使用する
上記の例のパターンでは、ABCDE
はすべてのファイルで同じですが、1234
または12345
の数字は常に4桁または5桁の数字です。 A1
はすべてのファイルで同じ長さですが、値が異なる可能性があるため、残念ながら区切り文字として使用することはできません。最初の.
の後のすべてがすべてのファイルで同じです。ような何か:
ls -l *.RST.txt | sort -k +9.13 | awk '{print $9} ' > file-list.txt
は私がソートするフィールドの前にあるため、文字の可変長の短いファイル名ではなく、長いものにマッチします。
短い長さのファイルを最初に埋め込んですべてのファイルを同じ長さにすることなく、すべてのファイルを並べ替える方法はありますか?
FYI - 'sort'コマンドはbashの一部ではなく、標準のUNIXユーティリティです。したがって、どのプログラム(およびシェル)でも利用できます。 –