与えられた注文の前に番号注文フォーム1-777を追加したいと思います。これを繰り返すことで、Bashの変数を増やすことができます。しかし、ZshやAwkを使ってやりたいです。以下は例です。ファイル名
IMG_20161215_081850.jpg
IMG_20161215_081851.jpg
IMG_20161215_090559.jpg
IMG_20161215_090601.jpg
IMG_20161215_091308.jpg
求める
1.IMG_20161215_081850.jpg
2.IMG_20161215_081851.jpg
3.IMG_20161215_090559.jpg
4.IMG_20161215_090601.jpg
5.IMG_20161215_091308.jpg
オペレーティングシステム:Debian 8.5
答え1
zsh で以下を使用します。zmv
バッチの名前変更を行います。まず実行autoload -U zmv
(に入れて.zshrc
)してから
i=1
zmv 'IMG_*.jpg' '$((i++)).$f'
答え2
ls *.jpg | nl -s.
nl
行番号が追加されます。番号とデータ(この場合はファイル名)の間の区切り記号として-s.
aを指定します。.
出力から先行スペースを削除するには、次のように追加します。
ls *.jpg | nl -s. | sed 's/^ *//'
sed
これにより、行の先頭からゼロ以上のスペースが削除されます。
本当にこれをやりたい場合awk
:
ls *.jpg | awk '{ print NR"."$0 }'
NR
これまで解析されたレコード数を表す内部変数です。
ファイル名を永久に変更するには、次の手順を実行します(Michael Vehrs)。
ls *.jpg | nl -s. | sed 's/ *\([0-9]\+\)\.\(.*\)/\2 \1\.\2/' | xargs -n 2 mv