1

ファイルのリストがあります(からパイプされますls)。理想的には、次のようになりたいです。

THISPARTISALWAYSTHESAME200_1.JPG
THISPARTISALWAYSTHESAME200_2.JPG
THISPARTISALWAYSTHESAME200_3.JPG
[...]
THISPARTISALWAYSTHESAME200_9.JPG
THISPARTISALWAYSTHESAME200_9_1.JPG
THISPARTISALWAYSTHESAME200_9_2.JPG
[...]
THISPARTISALWAYSTHESAME200_9_10.JPG
THISPARTISALWAYSTHESAME200_9_11.JPG
[...]
THISPARTISALWAYSTHESAME200_9_47.JPG
THISPARTISALWAYSTHESAME200_9_48.JPG
THISPARTISALWAYSTHESAME200_9_49.JPG
THISPARTISALWAYSTHESAME200Map_001.JPG
THISPARTISALWAYSTHESAME200Map_002.JPG

このリストを ImageMagickconvert関数にパイプして PDF にするので、上記のようにファイルを正しい順序で配置するとよいでしょう。ただし、lsそれらを自然にソートしないため、1-10-11-12-2-20 の混乱が生じます。ls -vそれらを自然に並べ替えますが、マップを最初に置きます。私が見つけたさまざまなawk機能sortはマップビットを処理できず、さらに興味深い混乱を引き起こします。

出力を取得して awk を使用して文字列 'map' を含むすべての行を最後に移動するのはそれほど難しくないと思いましたが、ls -vどうすればよいかわかりません。

4

2 に答える 2

2
ls -v | awk '{ if($0!~/Map/) print $0; else later[NR]=$0; } END { for (i=1; i<=NR; i++) if ( i in later ) print later[i]; }'
于 2013-02-19T05:18:02.443 に答える
1

lsまた、いくつかのglob/extended-glob patternの 2 つの呼び出しでこれを行うこともできます。

{ ls -v !(*Map*); ls -v *Map*; } | convert ...
于 2013-02-19T06:00:09.373 に答える