comp.lang.awk

extra help with awk

書いているのは 8/13 だけど、なんとなく気分は日曜日。(笑) シンプルで面白そうな話題です。 text here / text thereを - Text here - Text there.としたいらしい。 awk -F" */ *" ' { if (NF > 1) fmt = "- %s\n" else fmt = "%s\n" for ( i = 1; i <= NF;…

How to name the output file dynamically after a search result

abc123#sh run Building configuration... Current configuration: ! version 12.0 service timestamps debug uptime service timestamps log uptime no service password-encryption ! hostname abc123 ! ... end abc123#というファイルの version から end…

Running gawk example on Windows

Windows で gawk を動作させる場合には、シングルクォートに気を付けろという話です。 昔の jgawk を思い出しますね。本来、一行野郎でのクォートの扱いは shell に依存するのですが、jgawk はこれも jgawk が制御していたため、使いやすかったのです。 現在…

Is there an authorized nawk specification?

nawk のスペックは? という話ですが、これは「プログラミング言語 awk」がそのものになっていますということです。 もちろん、gawk, mawk もこれに従っています。

log parsing

ログ解析の話題ですが、こんな awk が得意とする話題は当然盛り上がってしまい、いろいろな回答が出ています。 Server App Total In Use Free server1 application integer integer integer server2 application integer integer integer server3 applicatio…

gawk in real-time pipelines

Windows でのリアルタイムパイプ処理の問題です。奇数行は入力したもの、偶数行は gawk が表示したものです。 C:\>gawk 1 abc abc def def ^Z ところが、パイプを通すと、 C:\>gawk 1 | gawk 1 abc def ^Z abc defとなるという話ですが、個人的にあまり使わ…

gawk in Java

gawk のソースコードを JAVA に翻訳することができるかという質問です。 Kenny McCormack が「Does anyone know if the source code for Windows XP has been 'translated' into Java? Voila! No more hunting around for distributions for individual plat…

mistake in the book sed & awk

なんかミスがあるそうだが、http://www.oreilly.com/catalog/sed2/errata/ にエラータがあるので終了。(でも、このエラータは重要) # いや、この本、好きじゃないから、もう見てないんですけどね。(gawk のメンテナーの本に何てことを!)

awk scripting needed...

"301","E 60th St","Hialeah Fl 33013-1065","33013-1065" "311","E 60th St","Hialeah Fl 33013-1065","33013-1065"の FS は? ("," ってのはなしか・・・) $ gawk -F"(\"|\",\")" '{for (i=2;i

gawk v3.1.4 parser crash on VMS

VMS ユーザーきたーって感じですが、私も VMS 上の gawk は良く使います。 と、思ったら再現しない!?

Trouble with AWK script on Solaris machine

いや〜、みなさん、良く一行野郎をスラスラ書くものですね。 pid=`ps -el | awk '( ($NF ~ /'"${UBS_SERVER}_serv"'/) && ($4 != mypid) && ($5 != mypid) ){ printf "%d ",$4 }' mypid=$$ `PID を得るためのものだそうです。 http://home.comcast.net/~j.p.…

printing odd columns

偶数のコラムだけを抜き出す方法に関する質問です。 awk '{for (i=1;i<=NF;i+=2) print $i}' fnameだと最初の i=1 の部分で変になるということで、いろいろ議論されているんだけど、 if ( NF % 2 == 0 )の挿入で問題ないのでは? と思いますけど、間違ってる?

Sort on first field, maintaining order of second field

第 1 フィールド優先のソート方法についての質問です。 sort -k1,1 -sう〜ん、awk で何とか書いて欲しかった。

ascii->int

ASCII コードから int への変換についての質問です。 echo $1 | awk ' BEGIN {a2i["A"]= 65; a2i["B"]= 66; a2i["C"]= 67; a2i["D"]= 68; a2i["E"]= 69; a2i["F"]= 70; a2i["G"]= 71; a2i["H"]= 72; a2i["I"]= 73; a2i["J"]= 74; a2i["K"]= 75; a2i["L"]= 76…

gawk for solaris

Solaris 用の gawk のソースコードの入手方法についての質問です。http://www.sunfreeware.com/ftp.html http://ftp.gnu.org/gnu/gawk/ま、妥当な回答だわなと思っていたら、gawk 3.1.5 がリリースされている・・・。全然気がつかなかった。

Ask for help about awk SUSv3 behavior

質問 : 数値で扱っているか、文字列で扱っているか? gawk では、 $ cat num.awk BEGIN{ a="+2" b=2 if(a==b) print "numeric comparison" else print "string comparison" } $ awk -f num.awk string comparisonただし、SUSv3 (なにそれ?) では numeric だそ…

Sed replace doesn't work from shell script

質問 : 以下のものはコマンドラインでは動くけど、shell では動かないが、何か間違っていますか? teufel# sed '/#auth./c\ > auth replacement' /etc/syslog.conf > syslog.conf 回答としては shell の問題なので、shell を何使ったかが分からないのでは、進…

File name size

質問 : awk が処理したバイト数を知りたい。 回答のひとつが長いので、ここでは書かないが、getline() で処理すると getline() で注意しなければいけないことがあるので、普通に NR, FNR, ARGV[], FILENAME を用いるのが良いらしい。特に getline() を使うと…

NR and NF

率直な素直な初心者からの質問ですね。 /foo/ とした時に、どの NF が該当するのか分かりますか? 該当したときに NR をインクリメント or デクリメントできますか? こういう、「どうなんだっけ?」という困ったときにも Ed 氏が回答しています。(苦笑) まず第…

Where are my other variables:

え〜、意味不明な質問からスタートしてますが、 bash-2.05$ ps -u nasir -o 'ppid,pid,comm'|grep -v "PPID" |awk '{ a[$3]++ } END{ for (i in a) print i, a[i] }'の結果、$1, $2, $4 はどこに行った? という内容らしいのですが、こういうネタものには Ed …

Setting filename in BEGIN

BEGIN ブロックで filename を指定できるかという件です。 BEGIN { ARGV[1]="filename" } { print $0 }で、やるとするなら、 BEGIN { ARGV[ARGC++]="filename" } { print $0 }なんですが、こうしないと結局標準入力が優先されてしまうようです。 でも、これ…

Assistance with multiple line file in AWK

下記のファイルで、":" の付いた名前と rlogin が true になったものをピックアップするんだそうな。 ******************************************************************* * VALID USER ATTRIBUTES: * * * cisinfo: login = false umask = 77 rlogin = fa…

How awk will do that

結構 awk で処理するのは面倒な予感です。 server1 /filesystem1 /filesystem2 /filesystem3 server2 /filesystemA /filesystem2 server3 /filesystem1 /filesystem8 /filesystem9というファイルを処理して、以下のように出力します。 /filesystem1 server1 …

I need to add blank spaces to a file

やりたいことが良く分からないが、スペースを付与したいそうな。 $ awk 'BEGIN{ printf "%11sE" , "" }'とか $ echo E | sed ':a;s/^.\{0,11\}$/ &/;ta'というものが相当するんだが、どうもファイルを置き換えたいらしい。(最初からそう書けよ) 紛争から抜け…

Matching parenthesis in files

"parenthesis" とは括弧のこと。(そんな単語しらねー) var1[1]="(1)" var1[2]="(13)"と定義して、 if (match(str[i],variable) > 0 )ということがやりたいらしい。 awk ' BEGIN { n=split("\\(1\\):\\(13\\)",re,":") } { for(j=1; j<=n; j++) { if ( match(…

appending a file to another as a new column

Loki Harfagr による夏休みモードが楽しいですね。これが引き金になって、少々スピードレースになっていますが、 awk 'BEGIN { fa=ARGV[1]; fb=ARGV[2]; while (0<(getline A

appending a file to another as a new column

自分の正攻法 (?) なるもので書いてみる。う〜ん、冗長。 { line[ARGIND,FNR] = $0; line_no = FNR; if ( line[ARGIND,FNR] !~ /,$/ ) { line[ARGIND,FNR] = sprintf( "%s,", line[ARGIND,FNR] ); } } END { for ( i = 1; i <= line_no; i++ ) { for ( j = 1…

appending a file to another as a new column

追加の回答で以下のような回答があった。 awk 'NR==FNR{b[++n]=$0;next}FNR==n{t=","}{print $0 t, b[FNR]}' fileB fileA う〜ん、見づらい。 NR==FNR というのは最初のファイルの読み込みを示しているわけですが・・・読みづらい。この解答を書いた Ed 氏の…

appending a file to another as a new column

以下のファイル A (File A) にファイル B (File B) を結合して以下のようなもの (Grouped) を作りたい場合の質問です。 File A ====== row1, row2, row3, A, 1.0, 1.3, 2.0, B, 10.2, 3.2, 12.8, C, 100.0, 102.3, 108.9 File B ====== row4, 20.3, 34.1, 10…