置換でcsv(tsv?)内の複数行のデータを1行にまとめたい。(超初心
置換でcsv(tsv?)内の複数行のデータを1行にまとめたい。(超初心者です)
正規表現とperlを一週間くらい前から勉強し始めた超初心者です。htmlとcssを多少知っているレベルの人間です。
AAA,1,2,2
データイ,3,-1,0
データロ,1,0.25,8
BBB,1,2,2
データイ,3,-1,0
データロ,1,0.25,8
CCC,1,2,2
データイ,3,-1,0
データロ,1,0.25,8
のような3行一組のデータを
AAA,1,2,2,3,-1,0,1,0.25,8
BBB,1,2,2,3,-1,0,1,0.25,8
CCC,1,2,2,3,-1,0,1,0.25,8
のように一番上の行にまとめようとしています。
miというmacのテキストエディタにcsvのデータを貼付けてやっているのでたぶんタブ区切りのカタチでやっていることになるのではないかと思っています。
いろんなサイトの見よう見真似でやった結果、
(.*?)\t(.*?)\t(.*?)\t(.*?)
データイ\t([-]??d+(?.?d+)?)\t([-]??d+(?.?d+)?)\t[-]??d+(?.?d+)?
データロ\t([-]??d+(?.?d+)?)\t([-]??d+(?.?d+)?)\t[-]??d+(?.?d+)?
で3行ごとにヒットはするようになりましたが、並べ替えの仕方がよくわかりません。
[-]??d+(?.?d+)?
をそれぞれ( )で囲んで
$1\t$2\t$3\t$4\t$5\t$6\t$7\t$8\t$9\t$10\t$12
のようにやってみましたが、$6あたりから後がでてきませんでした。
たぶんかなりとんちんかんなことをやっている気がしているのですが、20000行近いデータの集計を早急に出さなければならない状況に置かれており焦っています。
よろしくお願いします。
お礼
ふたたびのご回答、ありがとうございます。 私、パソコンの初心者で、わからない用語とヒンパンに出遭ったりしてます・・・。 ご提示の方法、いちどやってみます。