textutils

毎度お馴染みになってきた。浅広のコーナー。textutilsを色々試そう。

自分が使ったことのあるコマンドは省略。

横幅80文字に揃える。fold

$ ps ax | fold

僕の想像したfoldを遥かに下回った。残念!

fmtも同じような感じだけど、メール用ヘッダ処理が出来る。prは印刷用。

ファイルの先頭を表示する。head

$ head -n 1 public_html/cgi-bin/ruby.cgi
#!/usr/bin/ruby

初期値は10行。-nで行数指定。tailも同じなので、略。使い分けよう。

cut,paste,join

凄い。横のフィールドを結合したり、分割したり。エクセル風。joinはかなり使えそう。長いのでリンク先を参照せよ。

IBM Linux テキスト・ユーティリティーでデータ抽出を簡易化する - Japan

要ブクマ。

catの逆tac

$ tac public_html/cgi-bin/ruby.cgi
print "Hello, Ruby+CGI world!!"
print "Content-type:text/html\n\n"

#!/usr/bin/ruby

ビビッタ。ファイルを逆順に表示。使えるのか。使えないのか・・・。

行番号を表示nl

$ nl public_html/cgi-bin/ruby.cgi
     1  #!/usr/bin/ruby

     2  print "Content-type:text/html\n\n"
     3  print "Hello, Ruby+CGI world!!"

まぁまぁ。空行は数えてないらしい。

ファイルの分割split

$ cp public_html/cgi-bin/ruby.cgi tmp/
$ cd tmp/
$ ls
ruby.cgi
$ split -1 ruby.cgi
$ ls
ruby.cgi  xaa  xab  xac  xad
$ rm ruby.cgi x*

デフォルトは1000行。ログファイルの分割に使うらしい。

チェックサム3種

$ sum ruby.cgi
55376     1
$ cksum ruby.cgi
4083079102 85 ruby.cgi
$ md5sum ruby.cgi # おまけ
5d21678a677edd366e8f5277a1c455c8  ruby.cgi

タブをスペースに変換expand,逆はunexpand

$ expand public_html/cgi-bin/c_cgi.c | vim -
$ expand public_html/cgi-bin/c_cgi.c | unexpand | vim -

シェル上で確認出来なかったので、vimに渡して確認。

感想

多いのでがが〜っと体験しました〜。感動したのは,cut,paste,join。あと、tac。テキスト文化で育ってきただけあって、テキスト処理のLinuxコマンドは強力です。

やはり、体験すると違いますねぇ。どんどん活用したくなります。