さまざまなファイルの通知ファイルを受け取ります。他のプロセスで使用するために、これらの通知ファイルからファイル名を抽出したいと思います。通知ファイルの最初の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'