アプリ版:「スタンプのみでお礼する」機能のリリースについて

コマンドの出力結果をn行おきに出力する、出来るだけシンプルな方法を知りたいです。

例えば、あるファイルの中身をgrepで絞込み、かつそれを5行ごとに出力させる等。

シェルの種類は問いません。

宜しくお願い致します。

A 回答 (3件)

これならシェルに依存しないはず:


grep pattern file | sed -n 'p;N;N;N;N'
    • good
    • 5
この回答へのお礼

お礼が遅くなってすみません。

すごい、できました。
でも、なぜこれで可能なのか理屈がわかりません・・・
改めてsedに対する知識不足を痛感しました。
勉強します。

ありがとうございまいした。

お礼日時:2007/08/21 16:01

GNU sed 限定なんで使いどころを選びますが



grep -e 'pattern' file | sed -ne '1~5p'

awkでちょっと粘ると
grep -e 'pattern' file | awk '!((NR-1)%5)'
ってここは code golfするとこじゃないですね。
失礼しました。
    • good
    • 2
この回答へのお礼

お礼が遅くなってすみません。

いろんなやり方があるんですね。
非常に勉強になります。
質問したかいがありました。

ありがとうございます。

お礼日時:2007/08/21 16:05

awk が必要だけどスマートな方法:


grep pattern file | awk '{ if (NR % 5 == 1) print; }'
同じことを Perl でやると:
grep pattern file | perl -ne 'print if $. % 5 == 1;'
ま, この辺だとシェルに依存しないんですけどね.
    • good
    • 2
この回答へのお礼

お礼が遅くなってすみません。

awkのこういう使い方もあるんですね。
勉強不足でした。

ありがとうございます。

お礼日時:2007/08/21 16:03

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!