次のデータファイルがあります。
MASTER APP SET STATUS
max_mstr_ref max_mstr_ref_horizon_biz pp_script true
max_mstr_ref max_mstr_ref_horizon_biz pp_scrpt_1 false
max_retl_len max_retl_len_bddm_biz px_script true
min_min_ref min_min_ref_HZ_Null ap_script_2 false
...
私がしなければならないのは、列2から重複したプレフィックス値を削除することですmax_mstr_ref
。 2列の値から1列の値を減算し、結果として2列を埋める必要があるようです。これはファイル内の各レコードに対して動的に実行する必要があります。max_retl_len
min_min_ref
いくつawk
か試してみましたが、まだかなり短いです。
ベストアンサー1
これはどうですか
awk '{sub($1"_", "", $2); printf("%s %s %s %s\n", $1, $2, $3, $4)}' _input_file_
これは、最初のフィールドを正規表現として使用して、2番目のフィールドから削除します。次に、4つのフィールドを印刷します。私はあなたがそれをしたくないと思うので、正規表現に「_」を含めました。 printf 形式の文字列を調整して、出力を美しくすることができます。