我有格式的数据
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)
这也没有改变只取回输入文件。
我的输入是
Type combinational function (A B)
Run Code Online (Sandbox Code Playgroud)
想要输出是
Type combinational
function (A B)
Run Code Online (Sandbox Code Playgroud)
我使用了代码及其工作原理
sed 's/\([^ ]* [^ ]*\) \(function.*\)/\1\n\2/' Input_file
Run Code Online (Sandbox Code Playgroud)
当我在 python 脚本中使用这段代码时os.system,subprocess它给了我错误。我怎样才能sed在 python 脚本中执行这个。或者我如何为上面的内容编写Python代码sed code。使用的Python代码
cmd='''
sed 's/\([^ ]* [^ ]*\) \(function.*\)/\1\n\2/' Input_file
'''
subprocess.check_output(cmd, shell=True)
Run Code Online (Sandbox Code Playgroud)
错误是
sed: -e expression #1, char 34: unterminated `s' command
Run Code Online (Sandbox Code Playgroud)