我有一個文件,我想將「\ 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