5

私はシェルスクリプトの初心者です。この次のファイル構造を、ファイル名とフォルダー パスを分けて分割する必要があります。ファイル名に _ABF1_6 は必要ありません。これはファイル名の一部ではないためです。また、この _ABF1_6 はファイル パスごとに変化し、すべてのファイル パスで同じではありません。したがって、これは_ABF1で始まる正規表現と見なす必要があります。助けてください!!

サンプル ファイルパス:

/EBF/DirectiveFiles/data_report_PD_import_script_ABF1_6 

必要な出力:

Folder path: /EBF/DirectiveFiles/ 
Filename: data_report_PD_import_script 
4

3 に答える 3

5

UNIX には「フォルダ」がなく、「ディレクトリ」があります。

$ cat file
/ECMS/EDEV/ClassicClient/Forms/DirectiveFiles/data_report_PD_import_script_rev1_46_2_16

$ sed -r 's/(.*\/)(.*)_rev1.*/Directory: \1\nFilename: \2/' file
Directory: /ECMS/EDEV/ClassicClient/Forms/DirectiveFiles/
Filename: data_report_PD_import_script

または、必要に応じて GNU awk (gensub() 用) を使用します。

$ gawk '{print gensub(/(.*\/)(.*)_rev1.*/,"Directory: \\1\nFilename: \\2","")}' file
Directory: /ECMS/EDEV/ClassicClient/Forms/DirectiveFiles/
Filename: data_report_PD_import_script
于 2013-10-20T12:42:51.267 に答える