我有一个文件,我想将“\ n”转换为“”和“\ n \ n”转换为“\ n”。 例如:单线程将两个换行符转换为一个?
I
had
a
toy
.
It
was
good
.
变为:
I had a toy .
It was good .
有没有人有一个Unix的一行此操作?
我有一个文件,我想将“\ n”转换为“”和“\ n \ n”转换为“\ n”。 例如:单线程将两个换行符转换为一个?
I
had
a
toy
.
It
was
good
.
变为:
I had a toy .
It was good .
有没有人有一个Unix的一行此操作?
如果你已经安装了Ruby,这是一个伎俩。
irb(main):014:0> puts f.gsub(/[a-zA-Z.](\n)/) {|s| s.chomp +" "}
I had a toy .
It was good .
我觉得bmb“他/她自己的答案的评论暗示,如果你你可能有难度‘的建议,用Google搜索’。
谷歌'删除空行'。
也许fmt不会自己做,但有很多方法。
我喜欢grep
方法
grep -v "^$" filename > newfilename
,虽然这是一个有点杂乱不得不重命名文件。
编辑:由“删除空行的Perl”发现命中的人给
perl -pi -e "s/^\n//" file.txt
grep不具备“修改”内容的能力。 – ghostdog74 2009-09-24 00:46:22
但它不会修改内容 - 它只是过滤掉空白行并将它们发送到不同的文件。 – pavium 2009-09-24 00:49:26
哎呀,我的意思是grep发送*一切,但空白行到不同的文件。 Grep是一个**过滤器**,并且非常有用。 – pavium 2009-09-24 00:50:53
我能想到的第一件事情是这样的:
tr '\n' '#' | sed 's/##/\n/g' | sed 's/#//g'
#是不是使用的一些字符在文件中,这是它的缺点。你将不得不使用一些独特的性格;)
,如果你有呆子
# awk 'BEGIN{RS=""}{$1=$1}1' file
I had a toy .
It was good .
+1不错!这没有我的答案所具有的线路长度限制。 – bmb 2009-09-24 03:34:43
另一个awk中的解决方案:
$ cat data.txt
I
had
a
toy
.
It
was
good
.
$ awk '{printf "%s ", $0} /^$/{print ""}' data.txt
I had a toy .
It was good .
你举的例子并不能反映你的规则。如果“\ n”变成“”,那么AT ALL就没有换行符。 – gahooa 2009-09-24 00:07:35
我认为他的例子清楚地表明了问题。 – acrosman 2009-09-24 00:15:36