4行の複数の段落(2000以上)のファイルがあります。次の例に示すように、各段落に対して角括弧の内容を一致させる必要があります。
だから、各段落ごとに、
- エントリは最初の2行です。
- 3行目の場合、角カッコ間の現在の内容は、2行目の角カッコ間の内容に置き換えられる。
- 4行目では、角カッコ間の現在の内容は、最初の行の角カッコの間の内容に置き換えられます。
私はそれが十分に明確であることを願っています。
--入力する--
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
--算出--
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
解決策はありますか? awkとgsubを使用しているようですが、それは問題です。
ベストアンサー1
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
角かっこをフィールド区切り文字として使用し、代替ソース/ターゲットは$2
。
各行にこれを増やし、i
段落間でゼロにリセットします。 (1〜4)の値はi
何をすべきかを示します$2
。