gpt4 book ai didi

linux - 基于分隔符的合并记录 - Linux

转载 作者:太空宇宙 更新时间:2023-11-04 04:47:15 26 4
gpt4 key购买 nike

需要根据以下条件解析文件并创建新文件:

这是示例源数据

TTTTT001:866:           $READ #R1         FILE (TEST-ACCOUNTS) LOGICAL               00085100
TTTTT001-867- USING DESCRIPTOR (COMM-ACCOUNTS) 00085200
TTTTT001-868- STARTING FROM COMM-ACCOUNTS = WS-ACCT-KEY 00085300
TTTTT001-869- RECORD (TEST-ACCOUNTS) RELEASE(NO). 00085400
TTTTT001-870- 00085500
TTTTT001-871- IF NOT (LAST-RESPONSE-CODE = 0 OR 3) 00085600
TTTTT001-872- MOVE 122 TO ERROR-ABEND-CODE 00085700
TTTTT001-873- PERFORM ZT-ERROR. 00085800
--
TTTTT001:1018: $READ #R3 FILE (TEST-ACCOUNTS) 00100300
TTTTT001-1019- ISN (R1-ISN) 00100400
TTTTT001-1020- RECORD (TEST-ACCOUNTS) 00100500
TTTTT001-1021- RELEASE (NO) HOLD. 00100600
TTTTT001-1022- 00100700
TTTTT001-1023- IF LAST-RESPONSE-CODE NOT = 0 00100800
TTTTT001-1024- OR R3-ISN NOT = R1-ISN 00100900
TTTTT001-1025- MOVE 122 TO ERROR-ABEND-CODE 00101000
--

希望获得以下内容

  1. 每个部分均由 --(grep 的结果)标识
  2. 删除每行末尾出现的数字
  3. 删除 后的行。直到——
  4. 合并从 $READ 开始直到 .成一行

所以输出应该是这样的

TTTTT001:866:           $READ #R1         FILE (TEST-ACCOUNTS) LOGICAL USING DESCRIPTOR (COMM-ACCOUNTS) STARTING FROM COMM-ACCOUNTS = WS-ACCT-KEY RECORD (TEST-ACCOUNTS) RELEASE(NO).
--
TTTTT001:1018: $READ #R3 FILE (TEST-ACCOUNTS) ISN (R1-ISN) RECORD (TEST-ACCOUNTS) RELEASE (NO) HOLD.
--

最佳答案

您可以尝试这个 sed 命令并获得准确的结果。

sed -nr '/[T]+[0-9]+:/{:a;N;/\n--/{p;d;t};/\n.*\./{s/(.*) .*\n[^ ]+-(.*) .*/\1 \2/g;s/ +/ /g;p;d;t};s/(.*) .*\n[^ ]+-(.*) .*/\1 \2/g;s/ +/ /g; t a;}' FileName

关于linux - 基于分隔符的合并记录 - Linux,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27401690/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com