SEDまたはAWKを使用して行を列に移動する

SEDまたはAWKを使用して行を列に移動する

行ごとに生成されたレポートがあり、それを列に移動する必要があります。レコードあたりの行数は常に同じです。これはLinuxのbashスクリプトにあるので、利用可能な標準ツールを使用したいと思います。私はとをawk好むsed

これを変更する必要があります。

R1
R2
R3
R4
R5
R6
R7
R1
R2
R3
R4
R5
R6
R7

これに関して:

R1,R2,R3,R4,R5,R6,R7
R1,R2,R3,R4,R5,R6,R7

どんな助けでも大変感謝します。

いくつかの人々が上記のデータに実際に適用されるいくつかの非常に良い例を私にお勧めしました。残念ながら、私のデータはもう少し信頼できます。以下は私が使っている準現実世界の例です。

これ:

00000
ND00000056888
Doe, Jane J
F
99 Y
09/01/2014 8:01:08 AM
EE
00001
ND00000056889
Doe, John J
M
66 Y
09/02/2014 5:01:08 PM
DD

到着する:

00000;ND00000056888;Doe, Jane J;F;99 Y;09/01/2014 8:01:08 AM;EE
00001;ND00000056889;Doe, John J;M;66 Y;09/02/2014 5:01:08 PM;DD

カンマまたは単一のスペースを除くすべての区切り文字が可能です。

ベストアンサー1

努力する

 awk '{printf "%s%s",$0,NR%7?",":"\n" ; }' 

最も重要な部分

  • NR%7?",":"\n":if-then-else:
    • if(NR%7):NR、(レコード数)%(モジュロ)7(7で割った!= 0)
    • 次にa','を印刷します。
    • それ以外の場合は新しい行です。
  • $0全体のラインです。

おすすめ記事