編集する

編集する

私の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/renameperl's rename


このコマンドがない場合は、パッケージマネージャを検索してインストールするか、手動で行う


最後に、このツールはもともとPerlの父親であるLarry Wallによって書かれました。

関連情報