パターンが見つかるまで複数行を 1 つに連結します。

パターンが見つかるまで複数行を 1 つに連結します。

AWK モードと SED モードでは、次のようなファイルが生成されます。

|
9000
3000
1000
0000
0000
2000
1000
2000
|
5669000
518000
3000
16000
0000
28000
2241000
2841000
|
9020000
453000
520000
4000
2852000
5191000
75000
|

"|"で区切られた行をカンマで区切られた1行に合わせることはできますか?

9000,3000,1000,0000,0000,2000,1000,2000
5669000,518000,3000,16000,0000,28000,2241000,2841000
9020000,453000,520000,4000,2852000,5191000,75000

これを行うために貼り付けを使用しましたが、「|」間の行数が等しくないため、望ましくない結果が発生します。

ベストアンサー1

awk解決策。疑いが少し長くなりました。

$ awk 'BEGIN{RS="|"}NF>1{print substr(gensub(/\n/,",","g"),2,length($0)-2)}' file
9000,3000,1000,0000,0000,2000,1000,2000
5669000,518000,3000,16000,0000,28000,2241000,2841000
9020000,453000,520000,4000,2852000,5191000,75000
$

オンラインでお試しください!

おすすめ記事