編集する

編集する

私の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によって書かれました。

おすすめ記事