我有一个文件,我试图在其上运行“sed”命令,但是在 Cygwin 3.5.1 上运行它时,我在 Python 3.10.1 中执行它时遇到了问题。
我正在处理的文件非常简单,如下所示:
(Distance competency)
1. Approximately how long does it take for light from the Sun to reach Earth?
1 8 minutes
2 10 minutes
3 6 minutes
我试图摆脱的每一行的开头都有一个空格,这是一个相对简单的 sed 任务和一个正则表达式搜索和替换:
sed -i 's/^[ \t]*//g' ./myFile
当我在 Cygwin 命令行上运行它时,我得到了我想要的,但是我在 Python 脚本中编写它,并且当我执行以下行时:
sedStatement = "sed -i 's/^[ \t]*//g' ./myFile"
os.system(sedStatement)
我得到以下输出:
(Distancecompetency)
1.ApproximatelyhowlongdoesittakeforlightfromtheSuntoreachEarth?
18minutes
210minutes
36minutes
因此,根本没有识别插入符号“^”,而是看起来它被忽略了,并且所有空格都被替换为空,而我想要替换的是“行首”+“空格”与“空” ”。所以它看起来像这样......
(Distance competency)
1. Approximately how long does it take for light from the Sun to reach Earth?
1 8 minutes
2 10 minutes
3 6 minutes
有谁知道我做错了什么或者是什么原因造成的?我注意到我有一个“^M”作为行尾标记,但我不确定这是否是问题所在。我继续安装“dos2unix”并运行此命令,但它并没有摆脱“^M”行尾标记。
unix2dos -iso -n myFile myFile2
任何帮助将不胜感激,我对 Python 还是比较陌生。