2016-03-23 7 views
1

消えた「スラッシュ」:削除特定のパターンでの改行が、私は、このようなテキストファイル(各行の先頭に左くらいの空白)が

2016/03/01 
       6,015,511 +0.55 3,718 
    2016/03/02 
       4,584,160 -0.50 2,885 
    2016/03/03 
       5,509,856 0.00 718 

目標は、日付の後に改行を削除することです文字列、1つの行に結合されたすべての株で

sed ':a;N;$!ba;s:\([[:digit:]]\S*\)\n:\1 :g' 

結果を使用

2016/03/01  6,015,511 +0.55 3,718 
    2016/03/02  4,584,160 -0.50 2,885 
    2016/03/03  5,509,856 0.00 718 

です。

日付文字列に改行を削除する正規表現にスラッシュを追加する

sed ':a;N;$!ba;s:\/\([[:digit:]]\S*\)\n:\1 :g' 

結果は、(最初​​の消失である日付文字列にスラッシュ)である:

201603/01  6,015,511 +0.55 3,718 
    201603/02  4,584,160 -0.50 2,885 
    201603/03  5,509,856 0.00 718 

誰もがヒントを与えることができますか?

+0

あなたのファイルは本当に空白行で始まっていますか、それともhtmlタグを使用していますか? 4つのスペースをインデントして(またはそれを選択してからCtrl + Kを押して)、ブロックを作成することができます。 –

答えて

2

私は、あなたが望むすべてはこのだと思う:

$ sed 'N;s/\n//' infile 
    2016/03/01    6,015,511 +0.55 3,718 
    2016/03/02    4,584,160 -0.50 2,885 
    2016/03/03    5,509,856 0.00 718 

これは、パターンスペースに次の行を追加し、その後、改行を削除します。

0

は、スクリプトを次のよう試してみてください。

sed 's/^\s*//;N;s/\n\s*/ /' data.txt 

2016/03/01 6,015,511 +0.55 3,718 
2016/03/02 4,584,160 -0.50 2,885 
2016/03/03 5,509,856 0.00 718 

それは最初の行からすべての先頭のスペースを削除して、第一及び第二の線との間の合理的なスペースを挿入します。

+0

Saleemさんの返信に感謝します。それは、改行だけでなく空白の先頭を取り除きます。 – orionlin

関連する問題