Netnews
print unique ocurrences after matching pattern 入力ファイルが、 str1 str2 str3 str4 err003 str5 str...N str1 str2 str3 str4 str5 err002 str5 str...N str1 str2 err003 str3 str...N str1 str2 str3 err002 str4 str...Nのようなものの時に、/err[1…
Print last 5 lines そのあと、awk 単独でのものもいくつか紹介されています。 { line[0 + n] = $0; n = f(n + 1) } END { print line[n]; stop = f(n) for (i = f(n + 6); i != stop; i = f(i + 1)) print line[i] } function f(n) { return int(n % 11) } …
Return just the text I want from "uptime" 以下のような uptime コマンドの出力を使います。 18:01:04 up 1 min, 0 users, load average: 0.55, 0.28, 0.10 22:14:47 up 1:01, 0 users, load average: 0.21, 0.05, 0.02 17:58:52 up 1 day, 2:34, 0 users,…
removing leading character from left,right a string 以下のようなものがうまく動作しないと言っていますが、Ed Morton が回答しています。(表示できない文字があったので、少し直しています) name = " o " #line 5 for (ix1=1;ix1<2;ix1++) getline ; nam…
Sorting associative arrays Ed Morton がまともなことを書いているので、続きを載せておきます。要するに for ... in ... で呼び出さずに普通の for で呼び出せば良いわけです。 function prtSorted(a, min,max,i) { min = max = 0 for (i in a) { min = (i …
Sorting associative arrays これは定石なのかもしれないけれど、裏技的なことも書かれています。Golf を awk でされている方は環境変数を export できればなぁと思っているのではないでしょうか。まぁ、ソースコードを読めば書かれているわけですが・・・。…
how to list all defined variables gawk には '--dump-variables' というオプションがありますが、これを使います。 クラシカルな awk は Ed Morton が書かれているように配列に格納して for 文で探す手段も有効ではないでしょうか。 ... { V["var1"] = 3; …
shell variable in awk これも定石と言うか FAQ に近い問題です。基本的には '-v' オプションで渡すのが簡単で間違いがありません。 #! /bin/bash pattern=$1 cat file.c | awk '{ if($0 ~ $pattern) print $0; }' というものが動作しないと言うことですが、…
Help to explain awk が苦手とする tail のようなものですが、awk で行う場合には定石があって、Janis Papanagnou も親切に回答しています。 { two_lines = saved_line "\n" $0 saved_line = $0 } END { print two_lines } { prev_line = curr_line curr_lin…
To extract a substring between two different tokens. 入力が以下のような場合に、 UDP:[192.168.2.143]:6752次のような出力をさせるというものです。 192.168.2.143書かれてあるようにいくつかの手法がありますが、以下のような回答がありました。 awk "{…
Trying to remove blank lines 文字化けも手伝って、問題が分からないのですが、anarchy golf - delete blank lines のまんまです。なので、回答はここには載せませんが、見たい人は見てください。 anarchy golf - delete blank lines の 2 byte じゃないも…
inserting extra line with modified fields 正直言って、やりたいことが良く分からないのですが、以下のような内容です。 まず、fileA があります。 1 a b c 2 e f g 3 i j k 4 m n oで、fileB があります。 1 q r s t 1 u v w x 2 y z a b 2 c d e f 3 g h…
Getting URIs from HTML これは awk を使っている時に参考になる質問かな。 以下のような HTML の場合に拡張子が ext のものの URI を抜き出すというものです。 <html> <body> </body> </html> Tiago Peczenyj の回答が分かりやすいです。徐々に解読しているような方法です。 最初に R…
Compare a token from beginning of the line. 最初に 'india' というキーワードがあった場合に行を表示するというものです。以下のようなものを作成したけれど動作しないという内容です。 #! /bin/sh read line flag=awk /^india/ $line echo $flag #end 修…
an easy one $1 から $NF までの中の最初の '0' を取り除きたいというものです。また、awk だけでなく、grep, sed での解法もあれば教えて欲しいというものです。 いくつか回答が出ています。 sed 's/\s0\s/ /' youfile |<< >|awk| awk '$1=="0"{$1=""} 1' y…
to insert a word after a particular token in the input line 初心者からの質問のようですが、以下のようなことをしたいようです。 Input Line: Shell scripting is a programming language output line: Shell scripting is a powerful programming langu…
Help with text file parsing comp.lang.awk ではテキストファイルのパースとなっていますが、実際には面倒な問題です。 3 // Number of blocks five lines of text we don't care about 1 23.5 2 34.2 3 45.1 4 52.4 five lines of text we don't care abou…
regex guru needed $NEEDLE$, $BIG_NEEDLE$, $REALLY_BIG_NEEDLE$ のような '$' にはさまれたものを RS としたいようなのですが、特例として $NEE=\r\nDLE$, $=\nNEEDLE$ のようなものも認めるというものです。以下のような回答が出ています。 awk -v RS='$'…
How-to use values from 2 input files 前日の2 つのファイルの比較 - 日本 GNU AWK ユーザー会 0.2からの続きです。 $ cat input1.txt data=23 data=33 data=4と $ cat input2.txt data=23 data=32 data=3という 2 つのファイルがあった際に、値を比較する…
なかなかダークな世界の話題です。 GSUB regex (everything before variable) 以下のファイルの <br><br>より前を抽出するという問題ですが、完全に gsub() / sub() の評価式問題に置き換わっています。 this is a message<br><br> ignore me this is also a message a littl…
Another "How-to" use 2 input files into an awk program data.log が以下のようなもので、 John=0 Anna=2data1.log が以下のようなものの場合、 value=0 value=2 FS を '=' として $2 を比較する方法を問い合わせしているようですが、ここでは data.log の…
Google グループ "as" を含む行を出力するのに、 /as/ {print NR, $0} というものは出力されるが、 /^as$/ {print NR, $0} は何も表示されないという質問ですが、結果的に /^as$/ にマッチするものがないわけですが、comp.lang.awk ならではの回答が凄いです…
Google グループ Go deh!: Wide Finder on the command lineの最初に書かれているようなパイプ処理を awk で組み込んでいった場合に、パフォーマンスがどのくらい向上するかについて試したもののようです。grep + awk + sort + uniq + sort -n + tail という…
runawk と派生 - 日本 GNU AWK ユーザー会 0.2からの続きです。 Google グループ Wrapper for AWK providing modules download | SourceForge.net awkfe よりも runawk を使う理由を作者が挙げています。 awkfe にはメンテナーがいない どれが最新か分からな…
以下の続きです。 get arguments - 日本 GNU AWK ユーザー会 0.2 gawk であれば、getopt.awk というライブラリが含まれていて、コマンドラインオプションの処理に詳細が記述されています。 そこまで実用できな awk スクリプトがないためか、あまり getopt.awk…
Google グループ awk スクリプトを実行可能なものにした時に引数を処理したいというものです。 ./test.awk file arg1のような場合に file は入力ファイルに arg1 は変数などで用いる引数として使いたいというものですが、ひとつの回答として -v で引数処理を…
Google グループ 議論が面白い方向に進んでいますが、 Perl ist more powerful than gawk, as Java is more powerful than gawk, more libraries and more system interfaces. the one or other hybrid object oriented construct. Perl and gawk are typefr…
Adding prefixes bash の function で DOMAINS="abc.tld def.tld ghi.tld ..." という部分を DOMAINS="host.abc.tld host.def.tld host.ghi.tld ..." というものに置き換えたいと言うものです。いくつかの意見で shell の問題だから comp.lang.shell に質問…
Usage of gsub 厳密には gsub() の問題ではなく shell の問題になりますが、一行野郎で $ echo 'a,b,c,d,e' | gawk '{gsub(/\,/,"'&'",$0);print $0}' のようにしても a','b','c','d','eとならないというものです。 まさに「クォート地獄」なわけですが、回…
Google グループ 日本でこんな発言したら、釣りだと思われてしまうわけですが、平然と丁寧に答えているのが fj との違いかもしれません。(wxgawk の開発リーダーでもある Jürgen Kahrs はhttp://home.vrweb.de/~juergen.kahrs/で以下のように発言しているつ…