以下に示す入力ファイルで文字列を見つけようとしますが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'