タグ

awkに関するU1and0のブックマーク (27)

  • コマンドライン上でヒストグラム値(頻度数)を求める - Qiita

    こんにちは。 コマンドライン上でヒストグラム値(頻度数)を求めるシェルスクリプト を作りました1。 下記の動作例は history コマンドの第2カラムを対象としています(すなわち過去に使用したコマンド名)。 $ history | awk '{print $2}' | ./hist.sh | ./hist_graph.sh brew 87 ################################################## pip 33 ################### ls 30 ################# : :

    コマンドライン上でヒストグラム値(頻度数)を求める - Qiita
    U1and0
    U1and0 2019/01/19
    “'!max{max=$2;}{f=50/max;if(f>1)f=1;i=$2*f;r="";while(i-->0)r=r"#";printf "%s %s\n",$0,r;}'”
  • 斉藤 博文について

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

    斉藤 博文について
    U1and0
    U1and0 2019/01/08
  • Man page of GAWK

    Section: Utility Commands (1) Updated: May 17 2000 Index JM Home Page roff page 名称 gawk - パターン検索・処理言語 書式 awk [ POSIX or GNU style options ] -f program-file [ -- ] file ... gawk [ POSIX or GNU style options ] [ -- ] program-text file ... 解説 gawk は GNU プロジェクトが実装した プログラミング言語 AWK の処理系です。 処理系は POSIX 1003.2 コマンド言語とユーティリティ規約に定められた 言語の定義に適合しています。 バージョンはまた、Aho, Kernighan, Weinberger の著書 The AWK Programmi

    U1and0
    U1and0 2019/01/08
  • フィルタ言語 AWK (3)

    02 月 06 日(月) フィルタ言語 AWK (3) AWK の配列をうまく使えば,複雑な処理を簡単に記述できる場合がある. AWK の第一歩 や gawk 日語マニュアル 等を参考にしながら, 作業を進めて行こう. AWK の配列 AWK の連想配列 日の課題 AWK の配列 AWK では,変数と同様に,配列についても宣言せずに利用できる. つまり,AWK の配列は, 動的配列(要素数が可変の配列)ということだ. Cの配列は,基的には固定配列だった. 動的配列を使うこともできたが, 準備の malloc( ) と 片付けの free() とが必要で, 面倒だった.

    U1and0
    U1and0 2019/01/07
    配列
  • awkで重複行を高速削除する。 - 忘れないようにメモっとく

    awkで重複行を高速削除する。 行の重複削除で調べるとよく出てくるのが、sort & uniqを使ったコマンド。 ソートはファイルが大きくなると、実行にかなり時間がかかってしまいますね。 ソートせずに高速実行できるのが、次のawkコマンド。 awk '!colname[$1]++{print $1}' こういうファイルがあって、一列目の名前を取得したいとき、!colname[$1]は、データをキーにした連想配列で、インクリメントされる。 ボブ りんご | colname["ボブ"] → 0 {print $1} マイケル まんが  | colname["マイケル"] → 0 {print $1} マイケル まんが | colname["マイケル"] → 1 サブロー PC   | colname["サブロー"] → 0 {print $1} サブロー キーボード | colname["サブ

    awkで重複行を高速削除する。 - 忘れないようにメモっとく
    U1and0
    U1and0 2019/01/07
    awkでsort 連想配列使って!でboolianにすれば重複データはあの世へいく
  • awkで列の種類ごとに集計する。 - 忘れないようにメモっとく

    連想配列のキーにグループの名前を使えばおk。 集計するファイル↓↓ hoge.txt りんご 230 りんご 300 ばなな 190 ばなな 190 みかん 110 りんご 310 ばなな 190 みかん 110 みかん 130 awkファイル↓↓ sum.awk { sum[$1]+=$2 }; END { for (key in sum) { print key, sum[key] } } スクリプトの実行と結果。 awk -f sum.awk hoge.txt ばなな 570 みかん 350 りんご 840

    awkで列の種類ごとに集計する。 - 忘れないようにメモっとく
    U1and0
    U1and0 2019/01/07
    グループ集計 pandasのdf.groupby(index).sum()てきな。
  • Awkワンライナー (最小値、最大値、合計、平均、中央値) - 雨の歌をいつか書く

    簡単な解析はワンライナーでやっちゃおう。ということでまずは簡単に最小値と最大値と平均を求めるAwkワンライナーを書きます。 たとえば以下のようなログファイルがあるとする。僕はいま、3列目の数値に対して統計値を出したいのだ。 0 0 147.086 0 10 141.269 0 20 10000 0 30 2805.22 0 40 152.003 0 50 144.762 0 60 144.926 最大値 cat test.log | awk '{if(m<$3) m=$3} END{print m}' { if(m<$3) m=$3 } END { print m } $3ってのが第3番目の列という意味なので、ここを変えれば別のところも参照可能。BEGINの中で初期値を設定する必要があるのかなと思っていたけど、いきなりif(m>$3)を実際にやってみたら大丈夫だった。 最小値 基的には同

    Awkワンライナー (最小値、最大値、合計、平均、中央値) - 雨の歌をいつか書く
    U1and0
    U1and0 2019/01/07
    awkで中央値
  • AWKからPerlへの変換で困っています

    U1and0
    U1and0 2018/12/29
    “ワンライナー部分を単純に新規ファイルにコピーし、コマンドラインのワンライナー部分をそのファイル名に置き換え、最後にコマンドラインの-eを消すだけです。awk では逆に-fをつけなければなりません”
  • jq

    jq is a lightweight and flexible command-line JSON processor. jq is like sed for JSON data - you can use it to slice and filter and map and transform structured data with the same ease that sed, awk, grep and friends let you play with text. jq is written in portable C, and it has zero runtime dependencies. You can download a single binary, scp it to a far away machine of the same type, and expect

    U1and0
    U1and0 2018/09/15
    jq is like sed for JSON data - you can use it to slice and filter and map and transform structured data with the same ease that sed, awk, grep and friends let you play with text.
  • Pythonでgrepやawkのような行の抽出を行う | 俺的備忘録 〜なんかいろいろ〜

    最近ちょこちょこPythonを触る機会が多くなってきたのだが、処理の中でgrepやawkのように行の抽出をさせたいことがある。 Subprocessでgrepとかawkを呼び出すのはかっこ悪いし、Python内で処理を完結させたいというのもあったので少し調べてみた。 1.指定した文字列を含む行を抽出 1-1.基的な抽出方法 Pythonでgrepのような処理を行うには、find('文字列')を用いてその文字列を含む数を指定することで抽出が可能だ。 以下、記述例。 # -*- coding: utf-8 -* import sys ld = open(sys.argv[1]) lines = ld.readlines() ld.close() for line in lines: if line.find("文字列") >= 0: print line[:-1] [root@BS-PUB-

  • ターミナルで簡単にグラフを描くツール termeter - Qiita

    ターミナル上で簡単にグラフを描くためにtermeterというツールを作成してみました。 Getting Started termeterは通常のコマンドラインツールとして使用することができます。タブ区切りやカンマ区切りのデータを標準入力かファイルであたえることでグラフを描く事ができます。 例として以下のような三角関数のタブ区切りのデータを考えます。 $ seq 100 | awk 'BEGIN{OFS="\t"; print "x","sin(x)","cos(x)"}{x=$1/10; print x,sin(x),cos(x)}' | head x sin(x) cos(x) 0.1 0.0998334 0.995004 0.2 0.198669 0.980067 0.3 0.29552 0.955336 0.4 0.389418 0.921061 0.5 0.479426 0.877

    ターミナルで簡単にグラフを描くツール termeter - Qiita
  • 大量のファイルをシェルのコマンドで一括リネームする | DevelopersIO

    コマンド $ ls | sed -e s/\.txt// | awk '{print $1 ".txt " $1 "_document.md"}' | xargs -n 2 mv 戦略について まず前提として、ファイルのリネームを行うには、 xargs -n 2 mv にパイプで 元ファイル名 リネーム後のファイル名 のようなフォーマットの文字列を渡せば OK です。 $ ls before.txt $ echo "before.txt after.txt" before.txt after.txt $ echo "before.txt after.txt" | xargs -n 2 mv $ ls after.txt この文字列が複数行ある場合、 xargs -n 2 mv は1行ずつ順次処理します。 $ ls 1.txt 2.txt $ echo "1.txt 11.txt\n2.tx

    大量のファイルをシェルのコマンドで一括リネームする | DevelopersIO
  • Effective AWK Programming A User's Guide for GNU Awk

    Effective AWK Programming A User's Guide for GNU Awk Edition 1.0.4 April, 1999 Arnold D. Robbins はじめに awkとgawkの歴史 The GNU Project and This Book Acknowledgements Introduction Using This Book Dark Corners Typographical Conventions 例で使用するデータファイル Getting Started with awk A Rose By Any Other Name awkプログラムの実行の仕方 使い捨ての一発awkプログラム 入力ファイルなしのawkの実行 長いプログラムを実行する 実行可能なawkプログラム awkプログラム中のコメント 非常に単純な例 二つのルールを持つ例

    U1and0
    U1and0 2016/06/17
    Arnold.D Robbins さんによるドキュメントの日本語訳
  • よく使うawkコマンドまとめ - Qiita

    これってなんぞ 僕は記憶力がよろしくないので、awkのコマンドをここにメモしていきます。 変数の取り扱い \$0 = 行全体 \$1 = 1列目 という順に続く。 抽出 列名だけ指定 cat data.txt | awk '{print $1, $2, $4}' > hogehoge.txt 条件付き 第n列がm以上のときを抽出 n = 3, m = 10とする。 cat data.txt | awk '$3 > 10 {print}' > hogehoge.txt 最大値・最小値 第3列における例として。 最大値 cat data.txt | awk '{if(m<$3) m=$3} END{print m}' 最小値 cat data.txt | awk 'BEGIN{m=100000}{if(m>$3) m=$3} END{print m}' 重複 重複行を削除 cat data.t

    よく使うawkコマンドまとめ - Qiita
    U1and0
    U1and0 2016/02/16
    変数の取り扱い 抽出 列名だけ指定 条件付き 第n列がm以上のときを抽出 最大値・最小値 重複 重複行を削除 第n列と第m列で重複している行を削除 UNIXtimeから日付へ変換
  • Unix :: コマンド / awk [Tipsというかメモ]

    2行目と3行目を表示する (パイプ経由) % cat hoge.txt | awk 'NR==2,NR==3 { print }' 2行目と3行目を表示する (ファイルから読み込む) % awk 'NR==2,NR==3 { print }' < hoge.txt 条件分岐 (if else) % grep 'needle' hoge.txt \ | awk '{if($2==OK) ok++; else ng++}; END {print ok; print ng}' 第2フィールドの「OK」をカウントし、同時に「OK以外」もカウントする。 演算子 && || % some_command | awk '{if($1==A && $2==B) print}' % some_command | awk '{if($1==A || $2==B) print}' 第2フィールドが「1以上」の行

    U1and0
    U1and0 2016/02/16
    % cat hoge.txt | awk 'NR==2,NR==3 { print }'
  • awkガナス - 組み込み変数NF(フィールド数) NR(行番号)

    2 合計 9496 9 -rwxr-xr-x 1 root root 986672 9月 27 2014 bash 9 -rwxr-xr-x 3 root root 30240 10月 21 2013 bunzip2 9 -rwxr-xr-x 1 root root 1713424 11月 15 2013 busybox 9 -rwxr-xr-x 3 root root 30240 10月 21 2013 bzcat 11 lrwxrwxrwx 1 root root 6 10月 21 2013 bzcmp -> bzdiff 9 -rwxr-xr-x 1 root root 2140 10月 21 2013 bzdiff ..

    awkガナス - 組み込み変数NF(フィールド数) NR(行番号)
    U1and0
    U1and0 2016/02/16
    NF(number of fields in the current record) NR(current record number in the total input stream)
  • 初めてのAWK 使い方と使用例 56選 - Qiita

    Register as a new user and use Qiita more conveniently You get articles that match your needsYou can efficiently read back useful informationYou can use dark themeWhat you can do with signing up

    初めてのAWK 使い方と使用例 56選 - Qiita
    U1and0
    U1and0 2016/02/16
    テンプレ
  • AIX の古いバージョン

    AIX バージョン 5.3 および AIX バージョン 6.1 の資料は、IBM® Knowledge Center では入手できません。 ただし、AIX 5.3 および AIX バージョン 6.1 の資料を PDF ファイルとして表示できます。

    U1and0
    U1and0 2016/02/16
    コマンド一覧。awkのはうつー
  • awkを使って、ディレクトリの一覧を取得する

    <IT技術の処方箋:awkを使って、ディレクトリの一覧を取得する> awkを使うと、引き渡されたデータを配列として読み取ります。 以下の例だと、ls -la の3番目の要素を抽出します。 ls -l |awk '{print $3}' この性質を使って、ディレクトリ一覧を取得しましょう。 先頭が'd'のものは、ディレクトリですね。 $ls -l -rw-r--r-- 16:16 bbb -rw-r--r-- 16:16 cccc drwxr-xr-x 12:58 dir/ drwxr-xr-x 09:26 from/ awkを応用して考えると・・・・・ ディレクトリの一覧の文字列だけ取得できます。 $ls -l | awk '$1 ~ /d/ {print $9 }' dir from ※解説 $1(最初の文字)がdで始まるのは、dirとfromだけですから 上記のような結果になります。

    U1and0
    U1and0 2016/02/15
    ディレクトリの一覧の文字列だけ取得できます。 $ls -l | awk '$1 ~ /d/ {print $9 }'
  • メモとか:gnuplot で外部コマンドを実行する

    U1and0
    U1and0 2016/02/15
    system("head -n 1 hoge.dat | gawk '{print $2}'") シングル・ダブルクォーテーション入れ替えたりすると動いたり動かなかったり