タグ

awkに関するseapig_dolphinのブックマーク (18)

  • なるべく書かないawkの使い方 - ザリガニが見ていた...。

    awkという、古くからのスクリプト言語がある。(1977年生まれ。読み方は「オーク」である。エイ・ダブリュ・ケイではない)man awkをPDFに変換してみると、たったの3ページ強しかない。 $ man -t awk|pstopdf -i -o ~/Downloads/awk.pdf とてもシンプルな言語仕様ではあるが、awkには必要十分な表現力がある。特にテキストを処理する場面においては、最小限のシンプルな記述で、気の利いた処理を素早くこなす。無駄のないawkワンライナーを見ると、ある種の感動を覚える。awk以降に生まれたスクリプト言語は、少なからずawkの影響を受けていると思われる。 awkを知ることで、間違いなく幸福度は上がると思う。いつかきっと「知ってて良かった」と思える時が来るはず。もっともっと、awkを知りたくなってきた。 基動作 awkの基動作は、とってもシンプルである。

    なるべく書かないawkの使い方 - ザリガニが見ていた...。
  • 正規表現にマッチした部分だけを取り出す - 日本 GNU AWK ユーザー会 0.2

    How to gram awk's regexp submatches? $echo "test4325363test" | awk "/(.*)([0-9]+)(.*)/ {print NUMBER HERE!}"とした場合に数字だけを表示したいそうですが、awk で RSTART, RLENGTH をうまく使うのは慣れが必要かもしれません。 echo "test4325363test" | awk ' match($0,/[0-9]+/) { print substr($0,RSTART,RLENGTH) } ' もちろん、gawk なら gensub() で後方参照ができますから、もっとスマートに記述できます。 gawk '{print gensub(/(.*)([0-9]+)(.*)/,"\\2","")}'

    正規表現にマッチした部分だけを取り出す - 日本 GNU AWK ユーザー会 0.2
  • ちょい足しawkの基本|ざる魂

    $ awk '[BEGIN {各行を処理する前の処理}] [パターン] {各行の処理} [END {各行を処理した後の処理}]' BEGIEN, END, パターンは省略できる("[]"でくくったもの) 例は以下。アクセスログのステータスコードが200のものを出力 awk '$4 == "200" {print $4,$5}'# $4が200のとき、$4,$5を表示 awk '$4 != "200" { print }' # $4が200でないとき、1行まるごと表示 awk '$4 ~ /200/ { print }' # $4が200のとき、1行まるごと表示(正規表現) awk '$1 ~ /^a/ { print}' # $1が"a"で始まるとき、表示(正規表現) awk '$1 !~ /^a/{ print}' # $1が"a"以外で始まるとき、表示(正規表現) (例)

    seapig_dolphin
    seapig_dolphin 2015/10/27
    文字列の中から数字部分を取りだす場合
  • 実用 awk ワンライナー - Qiita

    AWK(オーク)を使ったワンライナーはとても強力で簡便なテキスト処理を可能とします.最近は,PerlRuby でもほとんど同様のことができ,取って代わられて久しいですが未だにその枯れ力といいますか,汎用性に関しては群を抜いているように思います. また,awk とは AWK の処理系のことを指しています. 一般に元祖 awk と呼ばれる処理系が最初と言われています.実際はわかりませんが,絶滅種の如く見かけることはなく,その文法などに関しても関数定義などの基的な部分が抜けていたので New awk(通称,nawk)として多少の文法が追加された処理系が,その流派を継いでいます. そして GNU プロジェクトによって大幅強化された awk が gawk です. よく見かけるのは,gawk か nawk のどっちかだと思います. 現在,Linux では標準で gawk が,OS X では 2

    実用 awk ワンライナー - Qiita
  • USP MAGAZINEコラボレーション連載/「シェル芸」に効く AWK処方箋一覧

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    USP MAGAZINEコラボレーション連載/「シェル芸」に効く AWK処方箋一覧
  • AWKのススメ - クックパッド開発者ブログ

    はじめまして。インフラチームの菅原といいます。 今年の7月に入社してから、コンソールとにらめっこする毎日を過ごしています。クックパッドのようにアクセスの多いサイトのサーバを扱うことが今まで無かったので、いろいろと勉強になることが多いです。 さて、インフラチームではサーバの状況をモニタリングして、サーバに問題がないかを常に把握するようにしています。そのため日常的にtailでログを追いかけているのですが、そんなときはAWKが非常に便利なことに気付き、最近はかなりAWKにハマっています。 今回は絶賛マイブーム中のAWKの活用例をご紹介したいと思います。 なぜAWKなのか? 残念ながらAWKの知名度はあまり高くないようで、社内でも「なぜRubyでやらないのか?」と聞かれることがありました。僕も入社するまではcutの代わりぐらいにしか使っていなかったのですが、あるときログ出力の整形に使って以来、AW

    AWKのススメ - クックパッド開発者ブログ
  • The GNU Awk User's Guide - 正規表現

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

    seapig_dolphin
    seapig_dolphin 2015/02/16
    以下に挙げる例は`foo' を含むレコードの第二フィールドを出力する。 $ awk '/foo/ { print $2 }' BBS-list
  • AWKで一番の得意ワザ! シェルで文字列を自在に扱うための文字列関数

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    AWKで一番の得意ワザ! シェルで文字列を自在に扱うための文字列関数
    seapig_dolphin
    seapig_dolphin 2015/02/16
    awkはゼロオリジンじゃない。
  • シェルコマンドを使った処理の効率化は AWKの行(レコード)操作がカギをにぎる

    編注1:「シェル芸」とは、UNIXシェル(主にbash)のワンライナーを駆使して文字列加工を自由自在に操ることです。また、そのような能力をもつ人をシェル芸人と呼びます。 「行」=「レコード」 デフォルトでAWKは「行」を「レコード」というものとして扱います。正しくは組込変数RS (Record Separater) で区切られたものをレコードと呼びますが、デフォルトでは、この組込変数RSは改行になるため、行がレコードそのものになります。また、このレコード単位の分割は、アクションでテキストファイルを読み込むと必ず行われるものとなっているため、ユーザーが特別に分割処理をしなくてもレコード単位で扱ってくれる、とても便利な仕組みです。 特殊なものとして、段落単位で読み込むために組込変数RSに空文字列を代入するものや、GNU AWK編注2ではファイル全体をひとつのレコードとして読み込む手法、組込変数

    シェルコマンドを使った処理の効率化は AWKの行(レコード)操作がカギをにぎる
    seapig_dolphin
    seapig_dolphin 2014/10/10
    あとで。
  • [特定の列以降をすべて出力したいとき] by かうぱーと

    awkで特定の列以降をすべて出力するときはfor()文を使います。 以下のようなデータで3列目以降(C D E F G)をすべて出力したいときは A B C D E F G $ awk '{for(i=3;i<NF;i++){printf("%s ",$i)}print $NF}' data.txt とすると良いです。

  • AWKのトリッキーな配列&連想配列の仕組み・動作と目からウロコのテクニック

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    AWKのトリッキーな配列&連想配列の仕組み・動作と目からウロコのテクニック
  • findでファイル名のみ表示 - Qiita

    はじめに findを普通に使うと, 以下のようにディレクトリとともに出力されるが, ファイル名のみ抽出したい場合がある. $ find . -type f ./path1/to1/file1.pl ./path2/to2/file2.rb ./path3/to3/file3.py ./path4/to4/file4.php ./path5/to5/file5.js

    findでファイル名のみ表示 - Qiita
    seapig_dolphin
    seapig_dolphin 2014/08/01
    便利!
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • awkで数値計算する方法: Akito's IT技術 メモ

    awkで計算する方法 以下のようなログファイルがある. $ cat /tmp/hoge.data 2011-01-13 18:47:46 WARN HogeHoge - getData 180 2011-01-13 18:47:46 WARN HogeHoge - getData 485 2011-01-13 18:47:46 WARN HogeHoge - getData 405 一番右端の数値は,データの数を表している.このデータ数の合計値を計算してみよう. $ cat /tmp/hoge.data | awk '{ sum += $7 } END { print sum }' 1070 最初の {} で,sumという変数を定義し,データ数を加算している. 最後に,合計値を出力するように,END節内で print sum してる. 次に,平均値を計算してみよう. $ cat /

  • awk歴一日の初心者が語るawk理解のポイント - シリコンの谷のゾンビ

    今までテキスト処理などでワンライナーを使うときはperlを使っていた.Perlを先に覚えた身としてはawkやsedは過去の産物だと思い込んでいた.awkの方が簡潔に書けるケースに出くわしたことをきっかけにawkを勉強してみたら単なわず嫌いだったことに気が付いたのでポイントをまとめてみる. なおプログラミング言語としてはAWKという表記が正しく (Aho, Weinberger, Kernighanの頭文字! ということだけは以前から知っていた),オリジナル処理系のことをawkと呼ぶのだろうけれど,今回は処理系の違いは気にしないのでawk, nawk, gawkの違いは気にしないことにした.ていうか詳しく知らない. 「awkってなんぞ?」という方が対象読者.スクリプト言語と正規表現の基礎知識が少しでもあれば,たぶんすぐに使えるようになると思う.awkを一度でも使ったことがある人には新しい情

    awk歴一日の初心者が語るawk理解のポイント - シリコンの谷のゾンビ
  • vmstatの結果に時間をつけつつファイルに出力する方法

    なんか最近、「○○の方法」的なエントリーばっかりですが、 今回も覚書としてメモメモ。です。 というわけで、vmstatについてですがCPUやらMemoryの 値をバババーッて表示して見れるコマンドです。 表示されるとこんな感じ。 $ vmstat 1 procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 0 31440 131364 268040 0 0 0 1 0 2 0 0 100 0 0 0 0 0 31432 131364 268040 0 0 0 0 15 21 0 0 100 0 0 0 0 0 31432 131364 268040 0 0 0 0

  • Charming Python: Functional programming in Python, Part 3

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    Charming Python: Functional programming in Python, Part 3
  • 2009-01-25

    やりたいこと 表題の通りなんだが、solaris10環境でちょっと自作の小道具を動かすために、時刻が欲しくなった。例えば、sar とかだと、左端に時刻がつく。こんな感じ bash-3.00$ sar -q 1 3 SunOS XXXXXX 5.10 Generic_xxxxxxx-xx i86pc 01/25/2009 20:36:33 runq-sz %runocc swpq-sz %swpocc 20:36:34 0.0 0 0.0 0 20:36:35 0.0 0 0.0 0 20:36:36 0.0 0 0.0 0 Average 0.0 0 0.0 0 で、vmstatの出力はこういう感じで時刻情報が無い。 bash-3.00$ vmstat 1 3 kthr memory page disk faults cpu r b w swap free re mf pi po fr d

    2009-01-25
  • 1