tit*_*ule 5 sed awk text-processing
我有一个由 4 行的几个段落(超过 2000 个)组成的文件。对于每个段落,我需要匹配括号之间的内容,如下例所示。
所以对于每一段,
我希望它足够清楚。
--输入--
A1 [A3 A4 A5] A2
B1 [B3 B4 B5] B2
C1 [C3 C4] C2
D1 [D3 D4] D2
E1 [E3 E4 E5] E2
F1 [F3 F4 F5] F2
G1 [G3 G4] G2
H1 [H3 H4] H2
Run Code Online (Sandbox Code Playgroud)
--输出--
A1 [A3 A4 A5] A2
B1 [B3 B4 B5] B2
C1 [B3 B4 B5] C2
D1 [A3 A4 A5] D2
E1 [E3 E4 E5] E2
F1 [F3 F4 F5] F2
G1 [F3 F4 F5] G2
H1 [E3 E4 E5] H2
Run Code Online (Sandbox Code Playgroud)
你有解决方案吗?使用 awk 和 gsub 我猜但问题是如何解决的。
awk -F[][] -vOFS= '++i==1 {a=$2} i==2 {b=$2} i==3 {$2="[" b "]"} i==4 {$2="[" a "]"} !NF {i=0} 1' input.txt
Run Code Online (Sandbox Code Playgroud)
使用方括号作为字段分隔符,您的替换源/目标位于$2.
我们i在每一行上递增,并在段落之间将其重置为零。(1 through 4)的值i告诉我们如何处理$2。