別のファイル名からファイル名を抽出する

別のファイル名からファイル名を抽出する

さまざまなファイルの通知ファイルを受け取ります。他のプロセスで使用するために、これらの通知ファイルからファイル名を抽出したいと思います。通知ファイルの最初の4つの文字列は常に無視されます。したがって、ファイル名は場所5から始まり、任意の文字で始まり、.で終わることができます.csv

一例:

NotificationFile = 'NFT_PPF_STANDARD_1720156B_NBIRNans_DFT_TILT_EOF_FFP_20160619-10.csv_16062000352520'
NotificationFile = 'NFT_PPF_IMPULSE_172555A_Acc_Account_FFP_20160619-10.csv_16062000352520'
NotificationFile = 'NFT_PPF_IMPULSE_172555A_CRI_Position_FFP_20160619-10.csv_16062000352520'

ファイル名は次のとおりです。

Filename = 'NBIRNans_DFT_TILT_EOF_FFP_20160619-10.csv'
Filename = 'Acc_Account_FFP_20160619-10.csv'
Filename = 'CRI_Position_FFP_20160619-10.csv'

次のコマンドを使用して通知ファイル名からファイル名を抽出しましたが、ファイル名に「_」が3つしか含まれていない場合にのみ機能します。

Extract = echo $NotificationFile | cut -d "_" -f5-8
# $NotificationFile is the NotificationFile above
# Extract should be equal to Filename 

すべてのファイル名の長さに使用できる一般的なコマンドは何ですか?

ベストアンサー1

必要に応じて使用できますsed

sed -ne 's/.*\(NB.*\)\_.*$/\FILENAME = \1 /p' 

おすすめ記事