我为结果创建脚本代码。
inq_message -PT_INQ_MESSAGE ID/INDTTF001 MSG/20230901-000012- | grep "|" |cut -c 53-68 | sed 's/|//g' |tr -d '\n'
当前结果
{1:REDACTED}{2:REDACTED}{3:REDACTED}{4: SEVERAL LINES REDACTED:15A..:20EVERAL LINES REDACTED:21AEVERAL LINES REDACTED}
想要的结果
{1:REDACTED}{2:REDACTED}{3:REDACTED}{4::20EVERAL LINES REDACTED
从此输入:
{1:REDACTED}{2:REDACTED}{3:REDACTED}{4: SEVERAL LINES REDACTED:15A..:20EVERAL LINES REDACTED:21AEVERAL LINES REDACTED}
如果你执行这个
awk
你可以得到预期的结果:
awk -F: 'BEGIN {OFS=FS} {print $1,$2,$3,$4,$7}'
所以你的命令变成:
inq_message -PT_INQ_MESSAGE ID/INDTTF001 MSG/20230901-000012- | grep "|" |cut -c 53-68 | sed 's/|//g' |tr -d '\n'|awk -F: 'BEGIN {OFS=FS} {print $1,$2,$3,$4,$7}'
谢谢您的建议。它可以工作,但并不完美。
inq_message -PT_INQ_MESSAGE ID/INDTTF001 MSG/20230901-000012- | grep "|" |cut -c 53-68 | sed 's/|//g' |tr -d '\n'| awk -F: 'BEGIN {OFS=FS} {print $1,$2,$3,$4,$5,$6}'