catで行番号を入れたら空白が入ってくるのですけど
なんでこんなタコな仕様なんですかぁ!UNIXな人たちを見損ないましたぁ...この切羽詰まってるとき(←オマエの都合だろうがよ!←うるせーバカ!)に冗談はやめてください!イジメカコワルイですぅ...(><)
というか、本気で困ってるんですけど。
ええと、catというのは猫じゃなくて(←ベタだなオイ!)たぶんファイル操作とかするためのコマンドなんですけど、これを使って行番号が振れるらしいのですよ。オプション -n を付けると空白行というか改行だけの行にも番号を振ってくれるし、オプション -b をつけると空白行というか改行だけの行は飛ばして番号を振ってくれる。まさに痒いところに手が届く!というかすばらしく頭良さそうな仕様ですよね!
なのになんで頼んでもいないのに空白を入れるんですか!ムキーッ!行頭の空白を取り除くコマンドとかオプションがあるんですか?っつーかもしかしてスクリプトやら何やらを書く時には空白の有無というかまあ無いとまずいけどある分には問題ない(ことが多い)ので、こういう点ではアレなんでしょうか?
具体的には以下のような感じになって困ってます(そもそもこうして書いているときだって空白行が表示されなかったりするしなあ、その点に関してはそうした方が利点も多いのだろうけど)。
空行
空行
空行
A 897
ABEL 1
ABHOR 1
ABHORRED 1
ABILITIES 1
ABILITY 1
ABLE 18
というのを cat -n [ファイル名] > [出力するファイル名] とやるとですね、以下のようになります。ちなみに上で「空行」と入れているのは本当に空行にしておくと無視されちゃうからです。
空白1
空白2
空白3
空白4 A 897
空白5 ABEL 1
空白6 ABHOR 1
空白7 ABHORRED 1
空白8 ABILITIES 1
空白9 ABILITY 1
空白10 ABLE 18
番号前の空白も表示されないので空白と書いておきました。で、ファイル頭の空行からカウントしないようにオプションを -b にするとこうなります。
空行
空行
空行
空白1 A 897
空白2 ABEL 1
空白3 ABHOR 1
空白4 ABHORRED 1
空白5 ABILITIES 1
空白6 ABILITY 1
空白7 ABLE 18
ええと、これでは分かり難いと思うのですけどなんか番号の前に5つ分くらいの空白が挿入されてるわけですよ。要らんがな!コレ。
うわーん!
#っつーか、まあ、無理矢理な解決策ならありますけどね。最初の状態のファイルの空白を何か空白以外の記号とかに変換しておいて、それからcatで行番号を振って、さらにそのファイルの空白を全部取り除いて、最後に最初に変換しておいた記号を空白に戻すと。愚痴言ってないでさっさとそういうスクリプト書けばいいんだけどさ、こういう記事とか書いている間にね。
でもなんつか、ムキャーッ!(←なんだよ!←せっかく便利なものがあると思ったのに期待はずれでガッカリなんだよ!←うるせーバカ!)



