ファイル名から特定の文字列を削除するスクリプト

ファイル名から特定の文字列を削除するスクリプト

CentOSからファイル名の一部を削除するためにbashスクリプトを作成しようとしています。私のファイル名は次のとおりです。

119903_Relinked_new_3075_FileNote_07_02_2009_JHughes_loaMeetingAndSupport_FN_205.doc
119904_relinked_new_2206_Support_Intensity_Scale_SYCH_SIS_264549.pdf
119905_relinked_new_3075_Consent_07_06_2009_DSweet_CRFA_CF_16532.docx
29908_relinked_new_2206_Assessor_Summary_Report_SERT_I_OTH_264551.pdf
009712_relinked_new_3075_Consent_07_06_2009_CWell_DPRT_check_CF_16535.pdf

ファイル名から削除したいです119903_Relinked_new_。最終結果は次のとおりです。

3075_FileNote_07_02_2009_JHughes_loaMeetingAndSupport_FN_205.doc
2206_Support_Intensity_Scale_SYCH_SIS_264549.pdf
3075_Consent_07_06_2009_DSweet_CRFA_CF_16532.docx
2206_Assessor_Summary_Report_SERT_I_OTH_264551.pdf
3075_Consent_07_06_2009_CWell_DPRT_check_CF_16535.pdf

私は良い結果が得られずにいくつかのスクリプトを試しました。ほとんどの場合、前の数字が_Relinked_new_異なり、ファイル拡張子は.pdf、など.docxでさまざまです。.docどんな助けでも大変感謝します。

ベストアンサー1

使用名前(1)ツール(システムによって、またはrenameprename呼ばれる場合があります):perl-rename

rename 's/[0-9]+_[rR]elinked_new_//' /path/to/dir/*

正規表現を使用してパターンを一致させ、指定されたファイルの内容に置き換えます。

おすすめ記事