ファイル名の順序の問題を解決するには?
例えば、
ls
生成されたファイルは次のとおりです。
basename1
basename11
basename12
basename13
[omitted]
basename2
basename20
basename21
....
basename3
質問
11-19は2と3の前に解析されます。
答え1
以下を使用してソートできます。
ls basename* | sort -V
ソートのための-Vオプションは「バージョン」の略ですが、実際には「名前と番号」に基づいてソートします。これはユーザーが探しているようです。ソートのマニュアルページを参照してください。
-V --バージョンソート
Sort by version name and number. It behaves like a standard sort, except that each sequence of decimal digits is treated numerically as an index/version number
グヌls
:
ls -v
リストはバージョン別にソートできます。
答え2
シェルを使用すると、オプションまたはglob修飾子を使用して数字zsh
でglobをソートできます。numericglobsort
n
print -rC1 basename*(n)
ls
glob拡張をコマンドに具体的に渡すと、ls
独自の語彙アライメントが行われるので、対応するzsh
。
GNU実装を使用すると、そのオプションを使用してソートを無効にls
できます。-U
ls -ldU basename*(n)