パターンマッチング後の行を次の行に分割

パターンマッチング後の行を次の行に分割

以下に示す入力ファイルで文字列を見つけようとしますがjob_type、job_typeと一致すると次の行に移動します。

私はこれを試しましたが、うまくいきません。

sed "s/[A-Z][a-z]*job_type:/\njob_type:/g"

入力する:

    insert_job: VAU_vaultnotification_ertgvfg_job job_type: xxx 
    insert_job: VAU_vaultnotification_ertgvfg_frd job_type: yyy 
    insert_job: VAU_vaultnotification_ertgvfg_erb job_type: SXC 
     job_type: CMD
    insert_job: VAU_vaultnotification_ertgvfg_frd job_type: YUI 

予想出力:

insert_job: VAU_vaultnotification_ertgvfg_job 
job_type: xxx 
insert_job: VAU_vaultnotification_ertgvfg_frd 
job_type: yyy 
insert_job: VAU_vaultnotification_ertgvfg_erb 
job_type: SXC 
 job_type: CMD
insert_job: VAU_vaultnotification_ertgvfg_frd 
job_type: YUI 

ベストアンサー1

あなたが何を求めているのかはよくわかりませんが、おそらくあなたは以下が欲しいでしょう:

sed 's/\([[:upper:]][[:alpha:]_]*\)[[:space:]]\{1,\}\(job_type:\)/\1\
\2/g'

または:

perl -Mopen=locale -pe 's/\b\p{Lu}\w*\K\s+(job_type:)/\n$1/g'

おすすめ記事