Hatena::ブログ(Diary)

驚異のアニヲタ社会復帰への道

Prima Project

2017-06-12

rs でテキストを転置(行と列をいれかえる)したいがsegmentation fault で死ぬ

なんでもいいのだがスペースで区切られた、横に長いファイルがあるとする。

seq -s" " 1 20
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

これを行から列に変換して縦に長いファイルが欲しい。というのも、paste コマンドなどを使って結合したいから。

rs というコマンドでできる。

sudo apt-get install rs

 

最初に知った時には感動したのだが、このコマンド、seq 0 1000 くらいで容易にsegmentation fault を起こして死ぬ。

awk を使う場合

awk '{for (i = 1; i <= NF; i++) print $i;}'

 

sed を使う場合

sed -e 's/ /\n/g'

hogehoge 2017/06/26 17:00 printf でできますよ。
$ printf "%d\n" $(seq 0 1000 )

hogehoge 2017/06/26 17:00 printf でできますよ。
$ printf "%d\n" $(seq 0 1000 )

MikuHatsuneMikuHatsune 2017/06/26 17:24 コメントありがとうございました。簡潔ですね。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/MikuHatsune/20170612/1497256471