ファイル名を切り捨てる

ファイル名を切り捨てる

ここに画像の説明を入力してください。UNIXディレクトリにはいくつかのファイルがあり、一意の番号で始まるファイルがあります。ファイル名から「-」が続く一意のIDを削除する必要があり、通常のファイルが必要です。

例: 32456113-report.pdf

データベースの必須ファイル名:report.pdf

さまざまな拡張子(.pdf、.doc、.xls、.txt)を持つファイル名がありますが、前に同じ数字があります。

私はWinscpを使用してデータをテストまたは報告し、Oracleアプリケーションでホスト同時プログラムとして登録してシェルスクリプトを実行しています。

答え1

あなたが望むものは何かを完全に理解していませんが、単純なbashスクリプトは次のようになると思います。

for f in * ; do mv "$f" "$(echo "$f" | cut -d- -f2)"; done

エコが気に入らないと気にならない音はやめてください。 Bashで文字列ルールを確認するのに役立ちます。

答え2

for f in *; do 
    regular="${f#*-}"
    echo "$f => $regular"
done

このパラメータ拡張(${f#*-})は、変数値の先頭でハイフンで終わる最も短い文字列を削除します(参照:手動)。だから:

$ f=32456113-summary-report.doc
$ echo "$f => ${f#*-}"
32456113-summary-report.doc => summary-report.doc

答え3

あなたはそれを使用することができますperl-rename

perl-rename 's/[0-9]*-//' <files>

OS/ディストリビューションによっては、このユーティリティは で呼び出すことができます。安全のため、rename実際にファイル名を変更する前に-nフラグを使用してperl-renameテストを実行してください。

関連情報