スポンサーリンク
sedのpコマンドで抽出する行を指定
※awkの使い方をまとめて一覧にしました。
参考:awk入門-使い方まとめ一覧-
参考:awk入門-使い方まとめ一覧-
※MACターミナル(BSD系)での動作確認です。
ただし、gsedをインストールして、aliasでalias sed='gsed'としています。
例えば、下記のin.txtがあったとします。
$ cat in.txt 1grep 2ls 3gawk 4which 5where
sedのpコマンドで2~4行目を出力しています。
$ sed -n 2,4p in.txt 2ls 3gawk 4which
上記は -n オプションをつけていることに注意です。
-nオプションをつけないと、下記のように一旦ファイル全体の行が出力されてしまいます。
$ sed 2,4p in.txt 1grep 2ls 2ls 3gawk 3gawk 4which 4which 5where
スポンサーリンク
awkのNR変数で抽出する行を指定
awkの場合は、NR変数を使うとよいかと思います。
参考:awkのNR変数で行数に応じた処理をする
例えば、2~4行目を出力する場合には、ワンライナーで下記のように書けます。
$ cat in.txt | awk '2<=NR && NR<=4{print $0}' 2ls 3gawk 4which
awkだと、応用として下記のようなこともできます。
例えば、下記のin2.txtがあったとします。
$ cat in2.txt 1grep,33 2ls,44 3gawk,55 4which,11 5where,77
2~4行目の2列目の数値の合計を出力しています。
参考:awkのワンライナーのサンプルコード
$ cat in2.txt | awk -F, '2<=NR && NR<=4{sum+=$2} END{print sum}' 110
スポンサーリンク