- ベストアンサー
unixコマンドについて
ユニークカウント uniq -c とすると、 カウント数<スペース>カウント対象物 例) 10 ○○△△ 9 ○□ ・・・ というデザインで出力されると思いますが、 この カウント数とカウント対象物の間のスペースをタブ区切りに変更するもっとも簡単なコマンドを教えてください。 なお、カウント対象物の中にもスペースが含まれており、そのスペースはタブ区切りにしたくはないので、あくまでも、カウント数とカウント対象物の間だけを変換したいのです。 よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんな感じでしょうか。 … | uniq -c | sed 's/^ *//;s/ /\t/'
その他の回答 (2)
- notnot
- ベストアンサー率47% (4900/10358)
回答No.3
空白があって数字が続いた直後の空白をタブに。 ~~ | uniq -c | sed 's/\( *[0-9]*\) /\1\t/' 先頭の空白を削除するなら、 ~~ | uniq -c | sed 's/ *\([0-9]*\) /\1\t/'
質問者
お礼
このやり方でもうまくいきました。ありがとうございます。
- kmee
- ベストアンサー率55% (1857/3366)
回答No.1
行頭 0個以上のスペースの列 1個以上の数字の列 1つのスペース を (0個以上のスペースの列 1個以上の数字の列 までを元の行から ) 1つのタブ に置換すればいい。 シェルによってはタブ文字入れるのが面倒だったりするだけで、あとはsedでできる。
質問者
お礼
ありがとうございます。考え方は理解できましたが、この処理を簡単に実行するにはどうしたらよいか 悩んでおります。
お礼
ファイルにミスがあり、再度実施しましたところ、うまくいきました。ありがとうございます。
補足
これで実装すると、カウント対象物内のはじめのスペースもタブ区切りになってしまいました。これでは うまくいかないようです。