我有格式的数据
A ((!(A1+A2)))
B (A1+A2)
C (A1 A2)
D (!(A1 A2) B1)
E (!A1+!A2)
F ((A1+A2) A3 A4)
G ((A1 A2)+(A3 A4))
Run Code Online (Sandbox Code Playgroud)
我想输出为
A ((!(A1+A2)))
B (A1+A2)
C (A1&A2)
D (!(A1&A2)&B1
E (!A1+!A2)
F ((A1+A2)&A3&A4)
G ((A1&A2)+(A3&A4))
Run Code Online (Sandbox Code Playgroud)
因此,每当 column2 中有空间时,我都希望将其替换为&
我尝试过的
sed 's/ /&/2' file
Run Code Online (Sandbox Code Playgroud)
但是没有变化我也试过了
awk -F' ' '{if($2==" ")$2="&";}1' file
Run Code Online (Sandbox Code Playgroud)
这也没有改变只取回输入文件。
您可以将其awk与 2 个空格一起用作输入/输出字段分隔符:
awk 'BEGIN {FS=OFS=" "} {gsub(/ +/, "\\&", $2)} 1' file
A ((!(A1+A2)))
B (A1+A2)
C (A1&A2)
D (!(A1&A2)&B1)
E (!A1+!A2)
F ((A1+A2)&A3&A4)
G ((A1&A2)+(A3&A4))
Run Code Online (Sandbox Code Playgroud)