greenteaの日記: テキストのn行目を抜き出すシェルコマンド 6
日記 by
greentea
って、そういや知らない。
うちにあった「UNIXコマンド ポケットリファレンス ビギナー編」のテキスト処理の項目にはなさそうだった。
必要になったので、どうにかしてみた。
一番最初に思いついたのが、headとtailを組み合わせて
head -n | tail -1
n行目がなかったときのことを考えるとややこしい。
次に思いついたのが、
sed -e 'n!d'
とりあえず、これで満足したけど、これよりもスマートな方法ってあるのかな?
これはawkerの出番 (スコア:1)
とかはどうでしょ?
タイプ数は増えるけど意図は明確に…ならんかorz
Re:これはawkerの出番 (スコア:1)
なるほど。そうやって行数を指定できるんですか。
awkでもできるはずだと思いつつ、調べなかったです。
1を聞いて0を知れ!
抜き出す (スコア:1, すばらしい洞察)
sed -n 'np'
1文字少ない。
Re:抜き出す (スコア:1)
確かにその方が素直で文字数も少なくていいですね。
manを斜め読みして読み飛ばしていた模様です。
1を聞いて0を知れ!
Re: (スコア:0)
Re:抜き出す (スコア:1)
けど、sed -n 'nd'は、''で囲まなくてもいいです。なので文字数は同じです。
'n!d'は、''で囲まないと!がシェルに解釈されます。(しないシェルもあるかもしれませんが)
1を聞いて0を知れ!