String 如何为文本文件中的每一行执行str.strip()?Unix
我可以在python中执行以下操作来清理和去除不需要的空白,但是是否可以通过终端通过其他方式(如String 如何为文本文件中的每一行执行str.strip()?Unix,string,unix,sed,grep,strip,String,Unix,Sed,Grep,Strip,我可以在python中执行以下操作来清理和去除不需要的空白,但是是否可以通过终端通过其他方式(如sed、grep或其他方式)来完成 outfile = open('textstripped.txt','w+','utf8') for i in open('textfile.txt','r','utf8'): print>>outfile, i.strip() 这将去掉前导空格和尾随空格 编辑:sed-e“s/^[\t]+/;s/[\t]+$/”-i.bk input.txt 这
sed
、grep
或其他方式)来完成
outfile = open('textstripped.txt','w+','utf8')
for i in open('textfile.txt','r','utf8'):
print>>outfile, i.strip()
这将去掉前导空格和尾随空格
编辑:sed-e“s/^[\t]+/;s/[\t]+$/”-i.bk input.txt
这将执行就地文件编辑,并将备份保存到input.txt.bk(并按照某些建议保存一个过程)
这将去掉前导空格和尾随空格
编辑:sed-e“s/^[\t]+/;s/[\t]+$/”-i.bk input.txt
这将执行就地文件编辑,并将备份保存到input.txt.bk(并根据建议保存一个过程)sed-E“s/(^[\t]+|[\t]+$)/“output
或者,如果您有符合GNU标准的SED版本:
sed-E“s/^\s+|\s+$//g”out
如果您有Mac电脑,我建议您使用homebrew
并安装gnu-sed
。
然后,别名sed=gsed
sed-E“s/(^[\t]+|[\t]+$)/“output
或者,如果您有符合GNU标准的SED版本:
sed-E“s/^\s+|\s+$//g”out
如果您有Mac电脑,我建议您使用homebrew
并安装gnu-sed
。
然后,在命令行上使用
perl
,alias sed=gsed
:
perl-lpe的/^\s+/;s/\s+$/'file.txt>stripped.txt
在命令行上使用perl
:
perl-lpe的/^\s+/;s/\s+$/'file.txt>stripped.txt
此解决方案基于sed手册页:
sed 'y/\t/ /;s/^ *//;s/ *$//' input > output
说明:
y\t/
将制表符替换为空格
s/^*/
删除前导空格
s/*$/
删除尾随空格
此解决方案基于sed手册页:
sed 'y/\t/ /;s/^ *//;s/ *$//' input > output
说明:
y\t/
将制表符替换为空格
s/^*/
删除前导空格
s/*$/
删除尾随空格
可以,但你想解决什么问题?我只是想去掉文本文件中的所有行,因为我的注释者总是键入额外的尾随空格,有时也键入标题空格。它可以,但是你想解决什么问题呢?我只是想去掉文本文件中的所有行,因为我的注释员总是键入额外的尾随空格,有时也键入标题空格。对不起,我的正则表达式不存在,你能解释一下sed吗
^[\t]*
表示标题空格,[\t]*$
表示尾随空格,对吗?[\s\t]*
是否会与[\t]*
执行相同的操作?\s
的所有版本都无法识别Sed@2er0[\s]*
应该能够替换[\t]*
。但是,根据您使用的sed,前面的表单可能存在可移植性问题。e、 g.在我的Mac笔记本电脑上,我必须使用[\t]*
是的,我在Mac电脑上也在努力解决这个问题(否则,我会使用beatean zzk;-)你应该直接将文件传递给sed,以消除一个不必要的cat
过程。请原谅我的正则表达式noobiness,你能解释一下sed吗^[\t]*
表示标题空格,[\t]*$
表示尾随空格,对吗?[\s\t]*
是否会与[\t]*
执行相同的操作?\s
的所有版本都无法识别Sed@2er0[\s]*
应该能够替换[\t]*
。但是,根据您使用的sed,前面的表单可能存在可移植性问题。e、 g.在我的Mac笔记本电脑上,我必须使用[\t]*
是的,我在我的Mac电脑上也在努力解决这个问题(否则,我会使用beatean zzk;-)你应该直接将文件传递给sed,以消除一个不必要的cat
过程。