创建 shell 脚本以便仅提取所需的字符

问题描述 投票:0回答:2

我为结果创建脚本代码。

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
linux shell aix bank
2个回答
0
投票

从此输入:

{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}' 

0
投票

谢谢您的建议。它可以工作,但并不完美。

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}'
© www.soinside.com 2019 - 2024. All rights reserved.