ある行で見つかった値を最初の行の特定のフィールドに一致する別の行に追加する
あなたのすべてがうまくいくことを願っています! これが私が達成したいものです: 次の行があります。 2022-10-19 09:12:39.174 WRITING bytes(2566), indexname(20220701_cfgsys_017507001635) 2022-10-19 09:12:39.334 WRITING bytes(4301), indexname(20220601_cfgsys_017507001635) 2022-10-19 09:12:39.334 Sent bytes (2566) successfully 2022-10-19 09:12:39.334 WRITING bytes(1293), indexname(20220701_cfgsys_017507001635) 2022-10-19 09:12:39.398 Sent bytes (4301) successfully 2022-10-19 09:12:39.398 WRITING bytes(7285), indexname(20220601_cfgsys_017507001635) 2022-10-19 09:12:39.890 Sent bytes (1293) successfully 2022-10-19 09:12:39.890 WRITING bytes(4289), indexname(20220701_cfgsys_017507001635) 2022-10-19 09:12:40.123 Sent bytes (7285) successfully 内部の値を取得したい。インデックス名「WRITING」に一致する行に角かっこを追加し、「Sent bytes」に一致する行の末尾に追加します。バイトブラケットのマッチング。 たとえば、希望の出力は次のようになります。 2022-10-19 09:12:39.174 WRITING bytes(2566), indexname(20220701_cfgsys_017507001635) 2022-10-19 09:12:39.334 WRITING bytes(4301), indexname(20220601_cfgsys_017507001635) 2022-10-19 09:12:39.334 Sent bytes (2566) successfully 20220701_cfgsys_017507001635 2022-10-19 09:12:39.334 WRITING bytes(1293), indexname(20220701_cfgsys_017507001635) 2022-10-19 09:12:39.398 Sent bytes (4301) successfully 20220601_cfgsys_017507001635 2022-10-19 09:12:39.398 WRITING bytes(7285), indexname(20220601_cfgsys_017507001635) 2022-10-19 09:12:39.890 Sent bytes (1293) successfully 20220701_cfgsys_017507001635 2022-10-19 09:12:39.890 WRITING bytes(4289), indexname(20220701_cfgsys_017507001635) 2022-10-19 09:12:40.123 Sent bytes (7285) successfully 20220601_cfgsys_017507001635 角かっこ内の2つの値(バイト名とインデックス名)を取得する方法を知っています。 cat test.txt | grep "WRITING" | awk -F"[()]" '{print $2" "$4}' $2 = 括弧内のバイト値 $4 = 括弧内のインデックス名の値 ただし、必要な行に追加することはできません。次の行(「WRITING」の後ろ)で「Sent bytes」文字列を検索し、$ 2は「Sent bytes」行の$ 2と等しく、$ 4を追加する必要があります。 「すでにバイトを送る」行末で どんな助けでも大変感謝します! よろしくお願いします!