特定のディレクトリの中にあるファイルのファイル名の一部に、例えば、 'hoge-' を追加したい場合は、下のようにすればよい。

for x in *.html; do mv "${x}" "hoge-${x}"; done

ただ、この方法だと、ファイル名の一部を「削除」したファイル名を一括で作成することはできない。

例えば、 hoge-01.html, hoge-02.html, hoge-03.html, ... のようなファイル名のファイルがあるとき、 01.html, 02.html, 03.html, ... のようにファイル名を一括して変更したい場合のことだ。

このような場合は、

for x in *.html; do echo "mv ${x}" | sed -e 's/hoge-//g' | sed -e "s/mv /mv ${x} /g" | bash; done

のように、 sed を2回通した結果を bash に渡せばいい。

この記事のリンク元 | 9 | 8 | 1 |

この記事のリンク用URL&トラックバックURL : https://red-souls.jp/ichounoki/rnote/memo/20210114_121718204971.htm

キーワード: Linux ubuntu bash sed