
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
テストを実行してください。