腐っても鯛? 騏も老いては駑馬に劣る?
三人の碩学が生み出したスクリプト言語AWKについて語るスレ
◆ 前スレ
awkについて語るスレ
http://pc10.2ch.net/test/read.cgi/tech/1023556171/
◆ 関係スレ
シェルスクリプト相談室
http://pc10.2ch.net/test/read.cgi/tech/1112553783/
AWKでCGI
http://pc10.2ch.net/test/read.cgi/php/1171804314/
【sed】シェルスクリプト総合@LINUX Part2【awk】
http://pc10.2ch.net/test/read.cgi/linux/1154578200/
◆ 参考
The AWK Programming Language (Brian Kernighan):
ttp://cm.bell-labs.com/cm/cs/awkbook/index.html
GAWK (GNU Projedt):
ttp://www.gnu.org/software/gawk/
探検
awkについて語るスレ $2
■ このスレッドは過去ログ倉庫に格納されています
2007/02/23(金) 23:55:42
2007/03/04(日) 00:38:54
awkでSQLのleftjoinみたいなことできる?
2007/03/04(日) 01:55:43
2015
2007/03/04(日) 03:46:242007/03/04(日) 03:55:11
エンコーディング対応とか色々考えると、awkでHTMLを処理しようとするほうが
無理がある感じ。
素直にPではじまる言語とか使っとけば?みたいな。
無理がある感じ。
素直にPではじまる言語とか使っとけば?みたいな。
2219
2007/03/04(日) 04:55:31 >>21
PとかR使えってのはまあそうなんだけど、HTMLの妥当性とかエンコーディングを気にしないで
いい使い道で考えてた(個人的にそういう需要がある)のでね。
HTMLに関してはきちんとしたドキュメントならxgawkでどうにかなる?
PとかR使えってのはまあそうなんだけど、HTMLの妥当性とかエンコーディングを気にしないで
いい使い道で考えてた(個人的にそういう需要がある)のでね。
HTMLに関してはきちんとしたドキュメントならxgawkでどうにかなる?
2007/03/14(水) 16:26:36
昔、Fortran、Cぐらいしか知らなかった時、
「えっ、こんな数行で計算出来るの?」
「プログラム内にファイル名書かなくて良いの?」
「この数行で、すべてのデータの計算してくれるの?」
って、驚きながら友人に教えてもらいました。
今なら、Excelでするような計算はすべてawkでしてました。
アスキーから256倍シリーズが出たぐらいだから
注目の言語だったんだよね。
「えっ、こんな数行で計算出来るの?」
「プログラム内にファイル名書かなくて良いの?」
「この数行で、すべてのデータの計算してくれるの?」
って、驚きながら友人に教えてもらいました。
今なら、Excelでするような計算はすべてawkでしてました。
アスキーから256倍シリーズが出たぐらいだから
注目の言語だったんだよね。
2007/03/14(水) 16:40:22
Visicalcと1-2-3はawkブームより昔からあったんだけどね。
UNIXって意外と古くないんだよね。
UNIXって意外と古くないんだよね。
2007/04/14(土) 08:00:42
>10
発行所が新紀元社の「プログラミング言語AWK」を2005年に定価3465円(税込)で買いました。
奥付に「本書は1989年11月に株式会社トッパンより発行されました。この度、株式会社新紀元社より、原出版社、訳者の許可を得て再発行いたしました。」と書かれています。
発行所が新紀元社の「プログラミング言語AWK」を2005年に定価3465円(税込)で買いました。
奥付に「本書は1989年11月に株式会社トッパンより発行されました。この度、株式会社新紀元社より、原出版社、訳者の許可を得て再発行いたしました。」と書かれています。
2007/04/14(土) 09:43:47
新紀元社ってRPGの本しか出してないと思ってたから意外だ。
2007/04/14(土) 13:42:47
大昔に通ってた高専の土木工学科にはawkの授業があった
実験のデータ処理にでも使ってほしかったんだろう
実験のデータ処理にでも使ってほしかったんだろう
2007/04/16(月) 17:34:08
>24
awkブームは、西暦だと何年頃でしょうか?
awkブームは、西暦だと何年頃でしょうか?
2007/04/17(火) 00:31:15
3028
2007/04/17(火) 08:45:33 >29
御回答ありがとうございます。
御回答ありがとうございます。
2007/05/04(金) 21:28:49
最近の情報は、こちら!
ttp://gauc.no-ip.org/
ttp://gauc.no-ip.org/
2007/07/14(土) 08:27:58
鬼車awkを誰か作ってくれないかなー
2007/07/15(日) 03:17:40
2007/09/03(月) 08:59:45
あとローカル変数が欲しいな
2007/09/03(月) 10:30:14
functionの中はローカル変数になるよ。
2007/09/04(火) 00:12:17
いつから?未だに引数に並べるもんだと。
2007/09/04(火) 09:33:02
あー、ごめん、引数並べたやつがローカル変数になる。だった。
先に宣言すればいいんだから別によくね?
先に宣言すればいいんだから別によくね?
2007/09/09(日) 04:42:02
キモいやん。そのやり方。
39デフォルトの名無しさん
2007/09/14(金) 04:37:24 これからawkを勉強します。
2007/09/14(金) 09:05:13
awkを学ぶことになるでしょう。
41デフォルトの名無しさん
2007/09/15(土) 01:03:04 みなさんawkは語らないのですね。
2007/09/15(土) 10:28:44
船頭awkして船山に登る。
2007/09/16(日) 03:03:51
人に言えるほどawk知ってる訳でも無いし
2007/09/16(日) 10:27:22
だけど人の話は聞きたいし
2007/09/17(月) 18:12:15
awkぼ利通
46cat.awk
2007/09/19(水) 08:55:44 1
47デフォルトの名無しさん
2007/09/19(水) 16:41:49 awkを勉強しているのですが、Perlに慣れているからか
awkでできることはPerlでワンライナーでやったほうが(少なくとも自分にとっては)速い気がしてなりません。
これについてawk熟練者である皆様はいかがお考えになりますか?
こういう時はawkのほうが便利!という例にはどんなものがありますか?
awkでできることはPerlでワンライナーでやったほうが(少なくとも自分にとっては)速い気がしてなりません。
これについてawk熟練者である皆様はいかがお考えになりますか?
こういう時はawkのほうが便利!という例にはどんなものがありますか?
48デフォルトの名無しさん
2007/09/19(水) 16:43:11 ↑あっ速いというのは、コードを書くのが速いという意味です。
2007/09/19(水) 16:48:06
>>47
perl はなくても awk なら入っている事がある
perl はなくても awk なら入っている事がある
2007/09/19(水) 16:53:58
「コードを書くのが速い」という基準で、
「こういう時はawkのほうが便利」という例を他人に挙げさせても、
それはその人間にとっての速い気がする便利さであって、
意味のある一般的な議論にならないのではないか?
「こういう時はawkのほうが便利」という例を他人に挙げさせても、
それはその人間にとっての速い気がする便利さであって、
意味のある一般的な議論にならないのではないか?
2007/09/19(水) 16:57:51
PerlもRubyもPythonも使うけど、特定のカラムだけに興味があるケースは
無意識にawkを使うこともある。
perl -a とか cutしてpasteとかもあるけど。
無意識にawkを使うこともある。
perl -a とか cutしてpasteとかもあるけど。
52デフォルトの名無しさん
2007/09/19(水) 18:19:272007/09/19(水) 19:55:33
>>52
シェルスクリプトの中で、貧弱なシェルの計算能力を
補うために、ツールボックスの一つとして使われることが多い。
ので、シェルスクリプトを書く機会が多いのなら、やっておいて
損は無いと思うが、フットプリントが多少デカイこととやや移植性に
欠けることを気にしなければ、別にPerl使ったっていいわけだ
(どうせ今なら大抵は使えるだろうし、awkにしても一応Posix標準だが
色々変種がある)。
ま、単に便利なスクリプト言語が欲しいだけなら、今更awkをやる意味は
ほとんどないだろう。
フィールド分割だけならperl -aでawkの真似ができるしな。
シェルスクリプトの中で、貧弱なシェルの計算能力を
補うために、ツールボックスの一つとして使われることが多い。
ので、シェルスクリプトを書く機会が多いのなら、やっておいて
損は無いと思うが、フットプリントが多少デカイこととやや移植性に
欠けることを気にしなければ、別にPerl使ったっていいわけだ
(どうせ今なら大抵は使えるだろうし、awkにしても一応Posix標準だが
色々変種がある)。
ま、単に便利なスクリプト言語が欲しいだけなら、今更awkをやる意味は
ほとんどないだろう。
フィールド分割だけならperl -aでawkの真似ができるしな。
54デフォルトの名無しさん
2007/09/19(水) 20:06:522007/09/19(水) 21:00:04
awkとperl、処理速度はどっちが速いんだろ?
ってオマエが試せって言われそうだけどふと思ったんで書いてみた。
ってオマエが試せって言われそうだけどふと思ったんで書いてみた。
2007/09/19(水) 22:17:45
awkは処理系多いからなぁ
何の処理かにもよるだろうし
何の処理かにもよるだろうし
2007/09/19(水) 23:45:00
どちらも得意とする単純なテキストのフィルタリング処理なら、
I/O速度で制限されるのでどちらでも(或いはsedを持ち出しても)大して変わらないと思う。
awkの真骨頂は一行野郎にあると思う私は、こんなのをよく書き捨てる。
--
awk 'BEGIN {print 1+2*3-4;}'
ls -l /tmp|awk '$5>0'
ls -l |awk '{sum+=$5;} END{print sum;}'
I/O速度で制限されるのでどちらでも(或いはsedを持ち出しても)大して変わらないと思う。
awkの真骨頂は一行野郎にあると思う私は、こんなのをよく書き捨てる。
--
awk 'BEGIN {print 1+2*3-4;}'
ls -l /tmp|awk '$5>0'
ls -l |awk '{sum+=$5;} END{print sum;}'
2007/09/19(水) 23:51:16
PerlにたいするAwkの現実的メリットはメモリ消費が少ないことくらいで
これは今の計算機では微々たる問題だ。
ESRのArt of UNIX Programmingを立ち読みしたら
Awkがメモリ節約のために仕様を制限したことが
早期に競争力をなくした理由と論じていた。
バッドな言語設計の見本って感じで、ちと不愉快だった
これは今の計算機では微々たる問題だ。
ESRのArt of UNIX Programmingを立ち読みしたら
Awkがメモリ節約のために仕様を制限したことが
早期に競争力をなくした理由と論じていた。
バッドな言語設計の見本って感じで、ちと不愉快だった
2007/09/22(土) 02:28:36
>>57
俺も時々やる。
その時は便利!と思って.cshrcとかにalias登録するけどすぐに忘れて同じ内容を手打ちしてたりする
その挙句にこれは便利!と思って.cshrc開くと既に登録してあるという…
俺も時々やる。
その時は便利!と思って.cshrcとかにalias登録するけどすぐに忘れて同じ内容を手打ちしてたりする
その挙句にこれは便利!と思って.cshrc開くと既に登録してあるという…
2007/09/22(土) 09:21:37
>>59
全俺が共感した。
全俺が共感した。
2007/09/24(月) 12:01:33
(.cshrcを.bashrcに置き換えて) 俺も同じ経験がある。
2007/09/28(金) 00:37:50
「一行野郎」は名訳
2007/09/28(金) 01:20:24
むかし、「読書するプログラマ」をよんで、awkで会計をするのがかっこ良いと
おもってました。
でも確定申告をする身になったらEXCELを使っている。
「エンジニアのための事務作業 sed awk grep そしてTex」なんて書籍があれば食いつくのに...
おもってました。
でも確定申告をする身になったらEXCELを使っている。
「エンジニアのための事務作業 sed awk grep そしてTex」なんて書籍があれば食いつくのに...
2007/09/28(金) 02:53:12
awkで会計用スクリプトを書くより、会計のしくみを理解することの方が
俺には遥かに難しい
俺には遥かに難しい
2007/09/28(金) 14:47:04
2007/10/02(火) 02:19:46
Perl はコード一目見て俺がcore吐きそうになる
2007/10/02(火) 07:50:30
任意に core が吐けたら便利だよな。日記代わりになる。
2007/10/02(火) 08:00:10
69デフォルトの名無しさん
2007/10/03(水) 23:18:59 awkってなんでPerl風に正規表現置換できるようにならんの。独自拡張でもいいんだけどな。
2007/10/04(木) 02:48:29
2007/10/04(木) 21:53:48
awkはDFAでperlはNFAだっけか?
2007/10/05(金) 02:45:00
73デフォルトの名無しさん
2007/11/22(木) 06:36:33 xgawkで多倍長整数を使いたいんですが、
printf( "%ld\n", num );
では桁数は増えても精度は上がってないようです。
型宣言するにはどうするのでしょうか
printf( "%ld\n", num );
では桁数は増えても精度は上がってないようです。
型宣言するにはどうするのでしょうか
2007/11/22(木) 07:17:23
>>73
多倍長整数を実装するのに個別の精度を上げてどうする。
多倍長整数を実装するのに個別の精度を上げてどうする。
2007/11/22(木) 07:34:48
xgawkは多倍長整数あるんですよね?
で、rubyのように無宣言で使えるかと思ったらそうではないらしいので、
どうするのかと。
http://home.vrweb.de/~juergen.kahrs/gawk/XML/xmlgawk.html
いまこのへん見てるんですが
で、rubyのように無宣言で使えるかと思ったらそうではないらしいので、
どうするのかと。
http://home.vrweb.de/~juergen.kahrs/gawk/XML/xmlgawk.html
いまこのへん見てるんですが
2007/11/22(木) 08:47:49
MPFR,多倍長整数ではなく実数かな。
ググって見つけました。
http://www.kt.rim.or.jp/~kbk/zakkicho/zakkicho7.html#D060126
http://golf.shinh.org/p.rb?Factorial
実はこれやってるんですが。
あとはdllのパスが分かれば・・・
ググって見つけました。
http://www.kt.rim.or.jp/~kbk/zakkicho/zakkicho7.html#D060126
http://golf.shinh.org/p.rb?Factorial
実はこれやってるんですが。
あとはdllのパスが分かれば・・・
2007/11/26(月) 21:13:28
2007/11/29(木) 08:00:03
そうですか
どちらにしても実数って事はやっぱ無理な気がしました
どちらにしても実数って事はやっぱ無理な気がしました
2008/01/04(金) 07:28:20
sedみたいに、パターン部分を行番号で指定出来ませんか?
2008/01/04(金) 09:32:19
2008/01/04(金) 14:24:54
>80
はじめsedみたいに 10,35{ みたいな感じに書いてダメだったので; }
普通に比較式書くんですね。10<=NR&&NR<=35{ で出来ました; }
ありがとうございます。
はじめsedみたいに 10,35{ みたいな感じに書いてダメだったので; }
普通に比較式書くんですね。10<=NR&&NR<=35{ で出来ました; }
ありがとうございます。
2008/01/05(土) 00:50:26
2008/01/14(月) 09:02:50
awk はオプションなしだとワンライナーのコードを書くことになると思いますが
実際 awk のワンライナーってどんな時に使いますか?
あまり見たことがなくて…
実際 awk のワンライナーってどんな時に使いますか?
あまり見たことがなくて…
2008/01/14(月) 09:45:08
>>83
UNIXでは多くのファイルや出力が欄区切りテキストの形式になっているから
その場使い捨てワンライナーが本来の使い方なんだけど、
他のOSだと BEGIN を main 代わりに使うようなのばっかになるかもね。
UNIXでは多くのファイルや出力が欄区切りテキストの形式になっているから
その場使い捨てワンライナーが本来の使い方なんだけど、
他のOSだと BEGIN を main 代わりに使うようなのばっかになるかもね。
2008/01/14(月) 09:46:06
>>83がsedをどう使っているのか気になる。
sedスクリプトファイルとか作って、スクリプトの引数に処理対象のファイルを渡してたりするのかな。
sedスクリプトファイルとか作って、スクリプトの引数に処理対象のファイルを渡してたりするのかな。
2008/01/14(月) 10:18:29
よく書く一行野郎。
--
du -sk /tmp/* | awk '{sum += $1;} END {print sum / NR;}'
# まぁ、duってのは今思いついただけで、実際にduの出力の平均を取ることはないけどね。
--
paste foo bar | awk '($1 - $2) > 1e-3 || ($1 - $2) < -1e-3 {print NR, $0;}'
# 一致を見るだけならdiffでいいけど、近似を見るには使えないんで。
--
du -sk /tmp/* | awk '{sum += $1;} END {print sum / NR;}'
# まぁ、duってのは今思いついただけで、実際にduの出力の平均を取ることはないけどね。
--
paste foo bar | awk '($1 - $2) > 1e-3 || ($1 - $2) < -1e-3 {print NR, $0;}'
# 一致を見るだけならdiffでいいけど、近似を見るには使えないんで。
2008/01/15(火) 18:34:44
2008/01/15(火) 18:59:18
あ、コード書きそうなのは後者です。
平均とか合計みたいなモノには良さそうですね。
平均とか合計みたいなモノには良さそうですね。
2008/01/15(火) 19:28:50
今日書いた一行野郎。
--
awk '{for (ic = 1; ic <= NF; ++ic) {if (max < $ic) max = $ic;}} END {print max;}'
--
これも全フィールドに拡張しているだけで、単に最大値を得ているだけだね。
--
awk '{for (ic = 1; ic <= NF; ++ic) {if (max < $ic) max = $ic;}} END {print max;}'
--
これも全フィールドに拡張しているだけで、単に最大値を得ているだけだね。
90デフォルトの名無しさん
2008/01/22(火) 16:52:32 よく書く一行
du -k|awk '$1 > 10000'
でかいデレクトリをさがす
du -k|awk '$1 > 10000'
でかいデレクトリをさがす
2008/01/29(火) 23:34:51
俺がよく書く一行野郎
$ awk 1 > hoge.sh
$ awk 1 > hoge.sh
2008/01/31(木) 12:58:14
2008/01/31(木) 18:48:07
>92
Windowsにawk入れてた時に、こんなヘンな癖が付いてしまった。
Windowsにawk入れてた時に、こんなヘンな癖が付いてしまった。
94デフォルトの名無しさん
2008/02/02(土) 12:38:28 すみません、初心者ですがawkに関するスレがここしかなかったので。
↓のソースを書いていただいたのですが、いったいどうすれば使えるのでしょうか?
ちなみに、これはフォルダ内のWinrar形式ファイルのリカバリレコードが付いているか否か
リストを一括で出力するものです。
よろしこ
**************
コマンドラインだけどunrar lt sample.rarの出力利用してリストを作るだけ
使い方はパイプでawkに渡して処理unrar lt *.rar | gawk -f rr.awk
awkなんか入ってないだろうから当然そのままじゃ動かない
rr.awk
#!/usr/local/bin/gawk
BEGIN {$rr=0; printf "%-30s\t%s\n", "FileName", "RecoveryRecord";}
{if($1=="Solid" && $2=="archive"){
for(i=3;i<=NF;i++) printf "%-30s ",$i;printf "\t";getline;getline;
if($0=="Recovery record is present"){printf "Yes / ";
for(;;){getline;if($0=="Data header type: RR"){getline;printf "%sbyte\n",$2;break;}}
}else printf "No\n";}}
↓のソースを書いていただいたのですが、いったいどうすれば使えるのでしょうか?
ちなみに、これはフォルダ内のWinrar形式ファイルのリカバリレコードが付いているか否か
リストを一括で出力するものです。
よろしこ
**************
コマンドラインだけどunrar lt sample.rarの出力利用してリストを作るだけ
使い方はパイプでawkに渡して処理unrar lt *.rar | gawk -f rr.awk
awkなんか入ってないだろうから当然そのままじゃ動かない
rr.awk
#!/usr/local/bin/gawk
BEGIN {$rr=0; printf "%-30s\t%s\n", "FileName", "RecoveryRecord";}
{if($1=="Solid" && $2=="archive"){
for(i=3;i<=NF;i++) printf "%-30s ",$i;printf "\t";getline;getline;
if($0=="Recovery record is present"){printf "Yes / ";
for(;;){getline;if($0=="Data header type: RR"){getline;printf "%sbyte\n",$2;break;}}
}else printf "No\n";}}
2008/02/02(土) 13:01:48
それを動かすにはまず gawk をどこかから入手する。
2008/02/02(土) 17:48:45
>>94
>↓のソースを書いていただいたのですが、
書いた人に聞く。
と答えると、わけのわからん理由を言ってごねるだろうから、
先に言っとくと、そんな見苦しい言い訳するな。
どうせ答えたって、今度は○○がわかりませんとか言い出すんだろ?
どっかからgawkを落として展開しろよ。全く、一生ググってろよカス
"C:\Program Files\WinRAR\UnRAR.exe" lt *.rar | "gawkのフルパス" -f rr.awk
>↓のソースを書いていただいたのですが、
書いた人に聞く。
と答えると、わけのわからん理由を言ってごねるだろうから、
先に言っとくと、そんな見苦しい言い訳するな。
どうせ答えたって、今度は○○がわかりませんとか言い出すんだろ?
どっかからgawkを落として展開しろよ。全く、一生ググってろよカス
"C:\Program Files\WinRAR\UnRAR.exe" lt *.rar | "gawkのフルパス" -f rr.awk
2008/02/10(日) 19:16:33
すいません、あるテキストを{print $1,$2}として抽出して
aaa 1
aaa 2
aaa 3
bbb 1
bbb 2
ccc 1
ccc 4
...
とまではできたんですが、並んでいるデータをそれぞれ、
aaa 6
bbb 3
ccc 5
と集計したいんですが、どのようにすればいいでしょうか?
aaa 1
aaa 2
aaa 3
bbb 1
bbb 2
ccc 1
ccc 4
...
とまではできたんですが、並んでいるデータをそれぞれ、
aaa 6
bbb 3
ccc 5
と集計したいんですが、どのようにすればいいでしょうか?
2008/02/10(日) 19:28:07
awk '{count[$1] += $2;} END{for (aaa in count) {print aaa count[aaa]}}'
あとはソートすればいいはず
あとはソートすればいいはず
9997
2008/02/10(日) 20:22:03 >98さん、ありがとうございます!
情けないのですが、今まで便利なツールに頼っていて全然コマンドについて理解できていなかったので困っていました。
実はメールログで送信者がどれだけの通数を送信してるかを確かめるためにコマンドでできないか、で>97でつまづいていました。
何とか途中までできたんですが、非常にスーパーエレガントな1行コードでして…。
質問ついでで申し訳ないのですが、
(aaa in count) {print aaa count[aaa]}
のaaaについてはどう解釈すればいいのでしょうか?
情けないのですが、今まで便利なツールに頼っていて全然コマンドについて理解できていなかったので困っていました。
実はメールログで送信者がどれだけの通数を送信してるかを確かめるためにコマンドでできないか、で>97でつまづいていました。
何とか途中までできたんですが、非常にスーパーエレガントな1行コードでして…。
質問ついでで申し訳ないのですが、
(aaa in count) {print aaa count[aaa]}
のaaaについてはどう解釈すればいいのでしょうか?
100デフォルトの名無しさん
2008/02/10(日) 20:33:27 >>99
bashとかのforとかと同じで適当な文字列ならなんでもいいです.例に出てきたaaaなんかにするからややこしくなってすみません.
for(hoge in list) {...}
で配列listのキーを片っ端からhogeに入れてループするって意味になるはずですよ.
bashとかのforとかと同じで適当な文字列ならなんでもいいです.例に出てきたaaaなんかにするからややこしくなってすみません.
for(hoge in list) {...}
で配列listのキーを片っ端からhogeに入れてループするって意味になるはずですよ.
101デフォルトの名無しさん
2008/02/10(日) 20:36:22 98じゃないけど
awk '{count[$1] += $2;} END{for (i in count) {printf "%s %i\n", i, count[i]}}'
こうやって書けばしんせつじゃね?
データの中のaaaとloopカウンターのaaaを同じ名前にするのは意地悪だと思うよ
awk '{count[$1] += $2;} END{for (i in count) {printf "%s %i\n", i, count[i]}}'
こうやって書けばしんせつじゃね?
データの中のaaaとloopカウンターのaaaを同じ名前にするのは意地悪だと思うよ
102デフォルトの名無しさん
2008/02/10(日) 20:37:23 101です。すまんonz
103≠98
2008/02/10(日) 20:39:44 あー、みんな書いているから私の書いたのは大幅に削るか。
そのENDブロック内は、
for (制御変数 in 連想配列) {...;}
というパターン。
その前段のcount[$1] += $2は一行目のとき
count["aaa"] += 1と解釈される。以下同様に。
このcountが連想配列として使われているということ。
そのENDブロック内は、
for (制御変数 in 連想配列) {...;}
というパターン。
その前段のcount[$1] += $2は一行目のとき
count["aaa"] += 1と解釈される。以下同様に。
このcountが連想配列として使われているということ。
104デフォルトの名無しさん
2008/02/10(日) 20:42:0510597
2008/02/10(日) 20:52:15 いえいえいえいえ…そういう意味じゃなくて教わっていながらすいませんです。
上記で書いたとおり便利ツールに頼り切ってて殆ど知らない私が悪いのですが…。
今一生懸命3byte程度の脳みそで勉強してるんですが、2日目で挫折しそうで質問させて貰いました…。
たとえばログには
Feb 9 22:44:40 localhost postfix/qmgr[1936]: 345C48C0154: from=<use1@example.com>, size=556, nrcpt=1 (queue active)
と必ず出ます。で、
1,生ログをそのまま処理するのが怖い(大きなファイル)ので、日付でログを抽出して別ファイルへ保存。
2,grepで nrcpt=と抽出して、さらにgrep -vで除外するドメインを指定して抽出
3,そしてsedでnrcpt=を削除して
4,ここで>97のように$7と$9を並べたところで脳みそのバッファエラーを起こしました。
この処理の方法もエレガントなことは分かっていますが、恥は承知でお伺いした次第です…。
上記で書いたとおり便利ツールに頼り切ってて殆ど知らない私が悪いのですが…。
今一生懸命3byte程度の脳みそで勉強してるんですが、2日目で挫折しそうで質問させて貰いました…。
たとえばログには
Feb 9 22:44:40 localhost postfix/qmgr[1936]: 345C48C0154: from=<use1@example.com>, size=556, nrcpt=1 (queue active)
と必ず出ます。で、
1,生ログをそのまま処理するのが怖い(大きなファイル)ので、日付でログを抽出して別ファイルへ保存。
2,grepで nrcpt=と抽出して、さらにgrep -vで除外するドメインを指定して抽出
3,そしてsedでnrcpt=を削除して
4,ここで>97のように$7と$9を並べたところで脳みそのバッファエラーを起こしました。
この処理の方法もエレガントなことは分かっていますが、恥は承知でお伺いした次第です…。
106デフォルトの名無しさん
2008/02/13(水) 07:31:34 gsubで[.*]を置き換えるにはどうすればいいでしょうか?
107デフォルトの名無しさん
2008/02/14(木) 02:38:02108デフォルトの名無しさん
2008/02/16(土) 01:08:44 awkで現在時刻からn分前から以降のログだけを抜き出したいんですが、どうすればいいでしょうか…。
02 15 12:34:56 xxxxxxxxx
02 15 13:45:01 xxxxxxxxx
...
...
...
とかの形式なので、strftime()とかで現在とログの時刻を比較して抜き出す、とかを試したんですがダメでした…
02 15 12:34:56 xxxxxxxxx
02 15 13:45:01 xxxxxxxxx
...
...
...
とかの形式なので、strftime()とかで現在とログの時刻を比較して抜き出す、とかを試したんですがダメでした…
109デフォルトの名無しさん
2008/02/16(土) 01:49:16 >>108 これで駄目かな?(一応 gawk 3.0.4 では動いた)
BEGIN{
n=5
basetime=strftime("%m %d %H:%M:%S", systime()-60*n)
}
{
chktime=substr($0, 1, 14)
if(chktime >= basetime) print
}
BEGIN{
n=5
basetime=strftime("%m %d %H:%M:%S", systime()-60*n)
}
{
chktime=substr($0, 1, 14)
if(chktime >= basetime) print
}
110デフォルトの名無しさん
2008/02/16(土) 02:23:28 >109
ありがとうございます…素直に目が鱗でした…。
> chktime=substr($0, 1, 14)
なんですね…
perlが使えない環境なので、これが分かればいろいろ流用効くので助かりました。
ありがとうございます。もうちょっと精進します。。。
ありがとうございます…素直に目が鱗でした…。
> chktime=substr($0, 1, 14)
なんですね…
perlが使えない環境なので、これが分かればいろいろ流用効くので助かりました。
ありがとうございます。もうちょっと精進します。。。
111デフォルトの名無しさん
2008/02/18(月) 18:58:36112デフォルトの名無しさん
2008/02/18(月) 22:32:44113デフォルトの名無しさん
2008/02/19(火) 02:59:17 >2007年5月9日 第1版第16刷発行
本屋の棚で眠り続けてたってわけじゃないのかw
本屋の棚で眠り続けてたってわけじゃないのかw
114デフォルトの名無しさん
2008/02/24(日) 00:57:13 目が鱗 に一致する日本語のページ 約 1,920 件中 1 - 20 件目 (0.24 秒)
115デフォルトの名無しさん
2008/02/24(日) 01:00:56 メガ鱗
116デフォルトの名無しさん
2008/03/28(金) 21:53:28 sed, awk, ruby を使う。
それぞれ適材適所で使うけど、
「sed だけ」「awk だけ」で済ませられると、
不思議な喜びを感じる。
それぞれ適材適所で使うけど、
「sed だけ」「awk だけ」で済ませられると、
不思議な喜びを感じる。
117デフォルトの名無しさん
2008/03/30(日) 14:05:33■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 米大統領報道官「日本と強固な同盟維持、中国とも協力」 [少考さん★]
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 ★2 [蚤の市★]
- ミス・ユニバース フィンランド代表の「つり目」写真が波紋… 本人釈明も批判やまず 協会謝罪「徹底的に検証」へ [冬月記者★]
- 【おこめ券】鈴木憲和農相 小泉前農相の備蓄米放出を“反省”「備蓄の円滑な運営を図ってまいります」 [Hitzeschleier★]
- JA全農が「新おこめ券」…来年9月末の有効期限を新設、必要経費のみ上乗せ ★2 [蚤の市★]
- 1人3千円の食品高騰対策、何に使える? あいまいなまま衆院通過 [蚤の市★]
- 【悲報】維新の政治資金でガールズバー、高市首相「良いか悪いかは国民の皆さまが判断されること」 [115996789]
- 【マギレコ】VIPでマギアレコード&マギアエクセドラ【まどドラ】
- 中国人、ガチ超正論。「日本人がアイヌに対してやったことを『問題ない』とするなら、中国が日本人に同じことをしても文句ないだろう?」 [314039747]
- 【悲報】新米、全く売れなくて倉庫が満杯になってしまうwwwwwwwwwwwwwwwwwwww [802034645]
- 衛生的に気持ち悪くて性風俗店行ったこと無いんだ
- いじめられてる男子中学生だけど質問ある?
