sed:2行一致

sed:2行一致

レコードが2行に分割されたテキストファイルがあります。私はそれらを並べるのが好きです。記録は次のとおりです。

2013-07-29
 apt-get install git
2013-07-29
 apt-get install rsync
2013-07-31
 apt-get install nmap
2013-08-02
 apt-get install cifs-utils
2013-08-05
 apt-get install telnet

次の情報を取得したいと思います。

2013-07-29 apt-get install git
2013-07-29 apt-get install rsync
2013-07-31 apt-get install nmap
2013-08-02 apt-get install cifs-utils
2013-08-05 apt-get install telnet

試しましたが、sed2行を一致させることはできません。ヒントsedまたはより良いツールがありますか?

答え1

sed 'N;s/\n/ /'
  • N次の入力ラインをパターン空間に接続する
  • s/\n/ /行をスペースで区切る改行を置き換えます。

または:

sed -n 'N;s/\n/ /;/regex/p'
  • -n最後のコマンドでパターン空間の自動印刷を無効にします。
  • /regex/p正規表現に一致する行を印刷します。

g3つ以上の行を連結するには、代替修飾子を使用してください(例:)N;N;N;s/\n/ /g

答え2

この行apt-getの前にスペースがあるようです。説明する:

sed -e :a -e '$!N;s/\n / /;ta' -e 'P;D' inputfile

希望の結果を得る必要があります。

または、次のものを使用できますpaste

paste -d' ' - - < inputfile

関連情報