2013年6月25日火曜日

テキストファイルの行頭に行番号を挿入する

最近,授業の課題レポートにソースファイルを挿入することがよくある.
当然LaTeXで作成しているので,ファイルから直接埋め込んでいるのだが,

WM×LI: 【LaTeX】プログラムのソースコードを埋め込む方法.

さらに行番号も表示させたいと思い調べてみた.

しかし,LaTeXのみでそこまで実装するのは難しそうだったので,
視点を変えてソースファイル自体の行頭に行番号を挿入することにした.

(ソースファイルの行頭に番号を挿入してしまうと,当然コンパイルできなくなってしまうので,ソースファイルのコピーに挿入し,それをLaTeXで読み込む)

行番号を表示すると言えば,お馴染みのコマンドcat -nだが,

$ cat -n hoge.txt > hoge.txt

とすると,hoge.txtは空ファイルになってしまうので,teeコマンドを使ってあげると良い.

$ cat -n hoge.txt | tee hoge.txt

さらに,cat -n で行頭に余分なスペースが付いてしまうのを消したいならば

$ cat -n hoge.txt | sed -e 's/^\ *//g' | tee hoge.txt

とすれば良い.

さらに,さらに,行番号を二桁にしたいなら(1を01にする)

$ cat -n hoge.txt | sed -e 's/^\ *//g' \
| sed -e 's/^\([1-9]\)\([^0-9]\)/0\1\2/g' | tee hoge.txt

ここまで来ると,短いソースなら自分で書いたほうが早い気がしてくるけど,勉強だと思ってコマンドを叩く.






0 件のコメント:

コメントを投稿