csplitと貼り付け

csplitと貼り付け

テキストファイルがあります列.txt以下のように2つの列があります。

  1 1.1
  2 4.0
  3 3.2
  start newset
  1 2.2
  2 6.1
  3 10.3
  4 2.1
  start newset
  1 18.2
  2 4.3

次の場合、新しい列のペアを作成するには、それらを複数の列に変換する必要があります。ニュース収集開始到着しました。だから私が望む出力テキストファイルは次のようになります。 (文字列のある行を削除したいです。ニュース収集開始):

  1 1.1 1 2.2 1 18.2
  2 4.0 2 6.1 2 4.3
  3 3.2 3 10.3
        4 2.1

ベストアンサー1

これを試してみてください。

awk '
    /^start newset/ {
        max = max>i ? max : i
        i = 0
        set++
        next
    }
    {
        ++i
        a[i][set] = $0
    }
    END {
        for( i=1 ; i<=max ; i++ ) { 
            for( j=1 ; j<=set ; j++ )
                b = b OFS a[i][j]
            sub( "\t" , "" , b )
            print b
            b=""
        }
    }
' set=1 OFS='\t' column.txt

おすすめ記事