tac, rev, column, rs, cut, paste, nl, jot

テキストファイルの整形関係。

1. tac

ファイルの行の順番をひっくり返す。catの反対。

2. rev

行内をひっくり返す。column コマンドには右寄せオプションがないが、rev を組み合わせて使えば右寄せを実現可能

[Example]

$ cat filename |rev|column -t|rev

3. column

表形式に整形する。

  

[Example]

CSVファイルから表を作成。

$ column -t -s ',' < filename.csv

vimの中で選択行を表に変換。フィールド区切りがコンマの場合

:!column -t -s ','

[主なオプション、引数]

-t -s sep    区切り文字をsepに。

-c    横幅(文字数)

-x    行から先に埋めていく

4. rs

表形式に整形(reshape)するだけなら大抵columnで要は足りるが、既存の表の行と列の入れ替えにはrsが便利。

[Example]

$ rs -T -c, < filename.csv

[主なオプション、引数]

-c[x]   区切り文字をxに。xを指定しなければタブコード。

-z    列ごとに最小幅

-T    行と列の入れ替え(transpose)

[rows [cols]]     行と列。'0'は無制限

5. cut

行から指定位置(文字またはフィールド)の文字を抜き出す。vimの矩形選択やcolrmでは文字位置しか指定できないので、きれいな表になっていない場合はこのcutが便利。

[Example]

$ cut -f 1-4 < filename

[主なオプション]

-f     フィールド位置で抜き出す

6. paste

複数のファイルの各行を1行にくっつけて表を作成する。

[Example]

$ seq 9 | paste - - -

[主なオプション]

FILE1, FILE2, ...

-d 区切り文字

7. nl

行番号を付ける。

8. jot

連番など連続した文字列を生成する。seqの高機能版かな。ただし、上位互換ではない。

[Example]

$ jot 10 -1 1.00 0.01

$ jot -r 5

$ jot -w STRING%c 10 a

[主なオプション]

[reps [begin [end [s] ] ] ]

-w

-r ランダム

Last update: 2020/8/23