私のUnixディレクトリには約5000個の.xmlファイルがあります。 .xml拡張子の前にあるすべてのファイル名にHist拡張子を追加したいと思います。たとえば、ファイルがABCD.xmlの場合は、名前をABCDHist.xmlに変更したいと思います。私はディレクトリ内のすべての5000個のファイルに対してこれを行いたいと思います。これを実行できる1行のコマンドはありますか?
編集する
私はunix(aix)システムでこれを行い、私が使っているツールはAttachmate Reflective SSHクライアントです。そこではperlコマンドを実行できないようです。
答え1
Perlを使用して名前を変更する:
rename -n 's/\.xml$/Hist.xml/' *.xml
(テストが正常な場合は -n スイッチを外してください.)
これを行うこともできないかもしれない同じ名前の他のツールがあるので注意してください。
次のコマンドを実行すると(GNU
)
$ file "$(readlink -f "$(type -p rename)")"
この結果が出ました。
.../rename: Perl script, ASCII text executable
以下は含まれません:
ELF
もしそうなら、これは正しいツールのようです=)
そうでない場合は、それをデフォルト値に設定し(通常はすでに適用されている)、Debian
次のように派生しますUbuntu
。
$ sudo update-alternatives --set rename /path/to/rename
(コマンドのパスに置き換えます/path/to/rename
。perl's rename
このコマンドがない場合は、パッケージマネージャを検索してインストールするか、手動で行う
最後に、このツールはもともとPerlの父親であるLarry Wallによって書かれました。