Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 如何为文本文件中的每一行执行str.strip()?Unix_String_Unix_Sed_Grep_Strip - Fatal编程技术网

String 如何为文本文件中的每一行执行str.strip()?Unix

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 这

我可以在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

这将执行就地文件编辑,并将备份保存到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
过程。