タグ

awkに関するnullpopopoのブックマーク (5)

  • シェルスクリプトで数字3桁をカンマ区切りにする

    bashなどのシェルスクリプトで数字を3桁のカンマ区切りにしようとすると結構めんどくさかったのでメモ。 printfの%dを%’d(シングルクォートを間に入れる)にするのはすぐに行き着くけど、それをawkで使おうとするとめちゃ厄介。シングルクォートの中にシングルクォートが入らないから。シングルクォートを\047でエスケープするのがみそ。 printf "%'d\n" "1000000" or awk '{printf"%\047d\n",$1}' <<< "1000000"

    シェルスクリプトで数字3桁をカンマ区切りにする
    nullpopopo
    nullpopopo 2015/09/02
    Ωヾ(・∀・` )ヘーヘーヘーヘーヘーヘー
  • awkの編集結果をファイルにリダイレクトで出力して保存する | 俺的備忘録 〜なんかいろいろ〜

    awkでリダイレクトを行う場合、たとえば「tail -F」などと組み合わせて利用する場合、単純に「>」で指定してもリダイレクトが行われない場合がある。 例) tail -F で「/work/test」というファイルを常時監視し、その内容に日付を付け足して「/work/test_log」ファイルに出力しようとしている。 tail -F /work/test | awk '{ print strftime("%Y/%m/%d %H:%M:%S") " " $0 }' > /work/test_log tail -Fとawkを組み合わせてファイルに出力する場合、以下のようにリダイレクトの前に「{ system (" ")}」と記述する必要がある。 tail -F /work/test | awk '{ print strftime("%Y/%m/%d %H:%M:%S") " " $0 } {

  • The GNU Awk User's Guide - 正規表現

    正規表現とは、文字列の集合を表現する方法である。 正規表現はawkプログラミングにおいて非常に基的な 部分であるので、その書式と使い方は章を分けて説明するに値する。 スラッシュ(`/')に囲まれた正規表現は、その正規表現が示す集合に 属するテキストが含まれる全ての入力レコードにマッチするawkの パターンである。 もっとも単純な正規表現は、文字や数字、もしくはその両方の並びである。 このような正規表現はそのような並びを含む任意の文字列にマッチする。 したがって、`foo'という正規表現は`foo'を含む任意の文字列 にマッチすることになる。 それにより、/foo/というパターンはレコードのどこであっても `foo'という三文字を含む入力レコードにマッチすることになる のである。他の種類の正規表現は、あなたがより複雑な文字列の集合を指定でき るようにするものである。 Initially,

  • Just another Ruby porter, 2015-4-b

    ■ 13. col1.txtとcol2.txtをマージ #awk awk万能。 % awk '{getline col2 < "col2.txt"; print $1 "\t" col2}' col1.txt $2へ読み込むという方法もある。 % awk '{getline $2 < "col2.txt"; print}' OFS='\t' col1.txt さらにゴルフするとprintも省略できる。 % awk 'getline $2 < "col2.txt"' OFS=\\t col1.txt ■ 14. 先頭からN行を出力 #シェル芸 headをsedやawkで。 % sed -n '1,10p' hightemp.txt % sed '1,10!d' hightemp.txt % awk 'NR==1,NR==10' hightemp.txt % awk 'NR<=10' high

  • awkを用いた偶数行または奇数行の抽出

    偶数行・奇数行の抽出 テキストファイルから偶数行または奇数行を抜き出したいときは以下のコマンドが便利である。以下のようなテキストファイルpopulation.txtがあるとする。 Tokyo 8949447 Yokohama 3689603 Osaka 2666371 Nagoya 2263907 Sapporo 1914434 Kobe 1544873 Kyoto 1474473 このファイルから奇数行だけ抜き出したいときは以下のようにする。

  • 1