2017-03-20 26 views
0

イムは、このコマンドを使用して、このテキストを置換しようとしているが、それは動作しません:sedは改行とリテラルをリテラルで置き換えますか?

sed -e 's/\nnumber2/number2/g' fffff > fffff 

これは私のファイルが含まれているものです:

number1;gAMMA 
number2;gat 
number1;zilla 
number2;dog 

これは私の予想出力されます。

number1;gAMMAnumber2;gat 
number1;zillanumber2;dog 
+0

数値1; gAMMAnumber2; GAT 数値1; zillanumber2;犬 – victorhernandezzero

+0

数値1; gAMMAnumber2; GAT/N 数値1; zillanumber2;犬 – victorhernandezzero

+0

私は問題がある最後 – victorhernandezzero

答えて

1

awkレスキュー!

$ awk '/^number2/ {n=1} 
     {printf "%s"(n?"\n":""), $0; n=0}' file > tmp && mv tmp file 

または多分はORSを設定し、すでにコメントで述べたように、Perlはおそらく、このマルチタスクに適しだろうprint

+0

非常に助けてくれてありがとう – victorhernandezzero

1

を使用します。

perl -i.bak -pe 's/(number1[^\n]*)\n/\1/' yourfile.txt 

おそらくよりエレガントですPerlでこれを行う方法ですが、これはかなり簡単です。 .bakという拡張子を持つバックアップファイルも作成されますが、その場合は、bakの部分を省略してください。

+0

非常にありがとうございます。 – victorhernandezzero

関連する問題