我现有的代码需要一些修改。我找不到更好更简单的方法来在 python 中完成它并且可以使用 unix 实现我想要的。所以我试图在代码中添加子进程并抛出错误。
subprocess.call(['sed', '-i', '-e', ':a;/"$/{P;D};N;s/\n//g;ba', file1])
上面是代码,我得到的错误是
sed: -e expression #1, char 17: unterminated `s' command
我做错了什么?
谢谢
最佳答案
好的,首先,您的字符串确实不完整,因为 \n
字符在 传递给 sed
之前被 python 转义了这会在您的 sed 规则中换行,使其确实不完整。解决这个问题:
subprocess.call(['sed', '-i', '-e', ':a;/"$/{P;D};N;s/\\n//g;ba', file1])
话虽如此,您应该能够使用基本的 Python 字符串操作和 PCRE 实现同样的效果。
关于python:子进程抛出未终止的 `s' 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53873394/