やりたいこと
100行の文字列の中で、5行目の特定の文字列(hoge)から10行目の特定の文字列(fuga)までの文字列を改行も含め取得したいという場合に有効。
awkで実行可能という事が分かった。
コマンドがシンプルで驚いた。さすがawk
参考URL:
やってみた
テスト用テキストを作成
1から100の文字列が書かれた100行のtest.txtというファイルを作成してみた。
% for i in `seq 1 100` ; do echo ${i} >> test.txt ;done
50という文字列から60という文字列を含んだ区間のテキストだけを抽出
このコマンドだけで50が含まれる文字列から60が含まれる文字列迄を抽出可能。
% cat test.txt | awk '/50/,/60/'
実行結果:
50
51
52
53
54
55
56
57
58
59
60
以下のコマンドでも同じ結果を出力可能
いや、できますけど。。。汚すぎて吐き気がするぜ★
% cat test.txt | grep -A100 50 | grep -B100 60
補足
sedとgrepでよく似たことをされているページを発見。
やりたいことは行内の文字列なので少し違うけど。
コメント