■掲示板に戻る■ 全部 1- 最新50シェル、オークの質問コーナー
- 1 :はろう :01/09/12 23:02
- ない!!のでつくりました
- 20 :12です :01/09/14 21:04
- まちがえた。
13さん、15さん
ありがとう。
- 21 :名無しさん@お腹いっぱい。 :01/09/14 21:06
- >>18
@を書くと、Cシェルスクリプト内で、
四則演算式が使えます。
- 22 :名無しさん@お腹いっぱい。 :01/09/15 03:25
- AWKのprintf文について教えてください。
次のようなTXTファイルがあるとします。
(ファイルの中身)
% cat moto
000-111-2222
000-333-4444
000-553-5555
このファイルをCSHのコマンドラインから、
awkを用いて下記のように出力するにはどうすればいいでしょうか?
(取得したい結果)
TEL='000-111-2222';
TEL='000-333-4444';
TEL='000-553-5555';
awkファイルを作成し
% cat a.awk
BEGIN {}
{
printf( "TEL='%s';\n",$1 )
}
上記のように書き実行すると、
% awk -f a.awk moto
TEL='000-111-2222';
TEL='000-333-4444';
TEL='000-553-5555';
と、目的の結果が得られますがコマンドラインから実行すると
上手くいきません。
(上手くいかなかった例1)
% awk '{printf"TEL='%s';\n",$1}' moto
TEL=000-111-2222;
TEL=000-333-4444;
TEL=000-553-5555;
※シングルクォートがつかない。
(上手くいかなかった例2)
% awk '{printf"TEL=\'%s\';\n",$1}' moto
一致しません"。
※エラーになってしまう。
シングルクォートの扱いが良く分かりません。
awkっつーよりもCSHの問題のような気がしますが、
どうやればいいのか分かりません。
啓示を授けてください。お願いします。
- 23 :原住民 :01/09/15 04:04
- % awk '{printf"TEL='\'%s\'';\n",$1}' moto
エレガントジャナイネエ。
- 24 :名無しさん@お腹いっぱい。 :01/09/15 16:00
- >>22
過去ログをみろ
- 25 :22です :01/09/16 03:52
- >過去ログをみろ
まったくです。24さん。すんません。過去ログつーかすぐ上ですね。
(恥ずかしい...。)
% awk '{printf"TEL=\047%s\047;\n",$1}' moto
TEL='000-111-2222';
TEL='000-333-4444';
TEL='000-553-5555';
できやした。
過去ログ巡礼してきます。(哀
- 26 :通りがかり :01/09/17 08:45
- ApacheでCodeRed*のログを切りたいのですが
XXXX
NNNN
を切り出す
おなじIP、ドメインを1つにする
時間も出す
って簡単にできないでしょうかねぇ?
どっかの過去ログで
NN、XXと時間を削除しただけの吐き出しスクリプト(つーかコマンドだな)は見かけたのですけどね〜
みなさんはどのようにして顧客にログ提出してますか?(特に今回のCode系)
- 27 :はろう :01/09/17 11:08
- 26へ データを切ってそれだけのデータにするとか?
もうちと説明くれないかな
- 28 :名無しさん@お腹いっぱい。 :01/09/17 11:34
- >26
そういうもんはそのつど作るもんだ。
それで金もらってんだろ?
- 29 :26 :01/09/17 11:54
- >>28
ううう、痛いです。
でも、線引屋なのでそこまでするなら別料金が欲しいです〜
ってゆーか
一応、考えますです
逝ってきますです
- 30 :名無しさん@お腹いっぱい。 :01/09/17 12:03
>> 28
線引くのですね。へたれですがこんなのでどうでしょう。
gawk '$0 ~ /default/ {print $0}' access.log | \
sort | \
gawk 'BEGIN {host = ""; at = 0} {if(host != $1) {if (at > 0) {print " ---------> " at;}; host = $1; print host; print $4 " " $5; at = 1;} else {print $4 " "$5; at++}\
} END {print " ---------> " at;}'
自分のへたれ具合に悲しくなりました。鬱だ屍脳。
- 31 :わら :01/09/17 22:15
- おもしろい
- 32 :名無しさん@お腹へった。 :01/09/18 03:08
- >>26
こんなのはどう?
ホスト,攻撃数,日時1,日時2,...
のようにcsvで出力します。fork発生しまくりでおそいですけど。
----
#!/bin/sh
LOGS=`ls access_log*`
HOSTS=`grep -e NNNNNNN -e XXXXXX $LOGS |awk '{print $1}' |sed "s/.*://" | sort -u`
echo "#host,count,date1,date2,..."
for i in $HOSTS
do
CNT=`grep "^$i .*default.ida" $LOGS |wc |awk '{print $1}'`
echo -n "$i,$CNT,"
grep "^$i .*default.ida" $LOGS |awk '{printf"%s,",$4}' |sed "s/\[//g"
echo
done
----
結果例(タブ区切りでsort +1 -nr した場合ですけど)
#host count date1 date2
203.136.45.179 26 09/Sep/2001:04:14:03 09/Sep/2001:04:15:47 ....
203.136.45.129 25 14/Sep/2001:22:34:58 14/Sep/2001:23:31:09 ....
203.136.45.208 23 05/Sep/2001:00:09:14 05/Sep/2001:00:43:22
203.236.227.71 16 01/Sep/2001:16:28:36 01/Sep/2001:16:28:37
203.136.45.4 14 26/Aug/2001:07:10:14 26/Aug/2001:07:53:24
203.136.45.213 14 02/Sep/2001:07:27:40 02/Sep/2001:11:20:12
203.136.45.130 11 01/Sep/2001:05:40:41 01/Sep/2001:05:44:13
203.136.45.100 10 16/Sep/2001:04:25:38 16/Sep/2001:05:35:48
203.136.45.211 9 16/Sep/2001:16:30:43 16/Sep/2001:17:49:39
203.136.155.110 8 01/Sep/2001:21:53:23 01/Sep/2001:21:56:01
203.235.96.35 6 31/Aug/2001:03:58:28 31/Aug/2001:03:59:55
:
- 33 :名無しさん@お腹へった。 :01/09/18 03:24
- ところで、
% getip 203.136.45.179 -a
address1 : 203.136.45.179
hostname : FLA1Aab051.oky.mesh.ad.jp
% getip 203.136.45.129 -a
address1 : 203.136.45.129
hostname : FLA1Aab001.oky.mesh.ad.jp
okyって沖縄のFLET's ADSLer?
- 34 :待った名無モロ、無修正画像サイト発見!しさん :01/09/18 03:25
- モロ、無修正画像サイト発見!
http://www.sex-jp.net/dh/01/
http://www.sex-jp.net/dh/02/
http://www.sex-jp.net/dh/03/
http://www.sex-jp.net/dh/04/
- 35 :名無しさん@お腹へった。 :01/09/18 05:18
- % getip www.sex-jp.net -a
address1 : 64.124.93.46
hostname : sex-jp.net
alias1 : www.sex-jp.net
意味無し...
- 36 :はろう :01/09/19 13:12
- HTTPのアクセスログから
不特定のIPアドレス、アクセス数をシェルか、オークで収集、統計できますか?
できるとしたらやり方を教えてください。よろしくお願いします。
- 37 :名無しさん@Emacs :01/09/19 13:47
- >>36
回答1、できる
回答2、ハッシュを使う
以上
- 38 :名無しさん@お腹いっぱい。 :01/09/19 18:50
- awk、sedでできることはperlでなんでもできふか?
perlってやっぱ覚えとくと便利で不可?
- 39 :名無しさん@お腹いっぱい。 :01/09/19 18:55
- >38
perl は system を使えばなんでもできるYo!
- 40 :名無し :01/09/19 19:11
- awkもsystemなかったか?
- 41 :名無しさん@お腹いっぱい。 :01/09/19 19:14
- >>39
なるー。るびーも能力的には互角?
まあ、テキスト処理が楽に統一的に使えそうでいいな
っておもてマフ。
- 42 :名無しさん@お腹いっぱい。 :01/09/19 22:31
- >>38
perlは、syscall.phをrequireして、
引数をpackして直接syscallよびだすとなんでもできるよ
- 43 :名無しさん@お腹いっぱい。 :01/09/19 23:14
- >>40
systemはawkにもある。
>>36って同じ質問をいくつものスレッドでするし、
前の$15の件も解決したんだか、しないんだか何も言わないし
なんだかな〜。
- 44 :名無しさん@お腹いっぱい。 :01/09/19 23:33
- >43
たぶん望む答えが出てきてないんだろうな。
つーか、自分が何を望んでいるかがわかってないのか。
- 45 :はろう :01/09/20 11:05
- すみません 私がカキコしてるのはここと便利なシェルをみせろの二つっす
$15の問題は解決しました
けどもawk -f でやると動きませんが
-fなしだと動きます。
- 46 :名無しさん@お腹いっぱい。 :01/09/20 18:03
- <SunOS 5.7>
指定されたディレクトリのファイルを圧縮して
ftpで他のサーバに格納するシェルを作りました。(シェル自体はテスト済み)
こいつを時間起動で毎日一回動かすようにする為、crontabに
登録したのですが、シェルが動く毎にメールが帰ってきます。
<クーロン登録内容>
* 22 * * 1-5 backup.sh >/dev/null
<メール内容>
:
:
produced the following output:
stty: : No such device or address
:
処理自体はうまく動いて、ftpも特に問題は無いのですが
メールが来るのがうっとうしいです。
メール出さないようにするにはどうすればいいんですかね?
- 47 :名無しさん@お腹いっぱい。 :01/09/20 23:42
- >>36
専用のsoftware, "analog"じゃ駄目なの?
- 48 :名無しさん@お腹いっぱい。 :01/09/21 00:27
- >46
完全にメールを受け取らない(クーロン正常/異常)場合
* 22 * * 1-5 backup.sh >/dev/null 2>&1
やってみれ
- 49 :名無しさん@お腹いっぱい。 :01/09/21 01:07
- シェル作ったんか…。凄いね。
- 50 :名無しさん@お腹いっぱい。 :01/09/21 01:13
- そろそろドンパチが始まるかも知れないから シェルより
シェルターを作った方がいいかもね
- 51 :名無しさん@お腹いっぱい。 :01/09/21 22:32
- > /dev/null 2>&1
だろが!!!
馬鹿たれが!!!!!!!!!!!!!!!!!!!!!!!
そんなこともわからんのか!!!!!!!!!!!!!!
チンカス
- 52 :名無しさん@お腹いっぱい。 :01/09/22 05:20
- マンカス!
- 53 :はろう :01/09/28 19:03
- ふう。
"analog"っすか。
修行いてきやす。
仕事忙しくてみれないこのごろ。
- 54 :名無しさん@お腹いっぱい。 :01/10/01 22:04
- 質問。
ツリーになっているディレクトリから、ファイル名とファイルサイズが同じ複
数のファイルを発見し、適当な一つ(最新のものかなあ。あんまりこだわらな
い) を残して他を消したいんですが、エレガントなのはどういう方法だと
思いますか? (なにをしているかは見当つくよね。美術画像の整理。)
perlかなんかで書くんだろうけど、オレの技量だと1週間かかっちゃう。
同じことしている人がいたら教えてください。
- 55 :名無しさん@お腹いっぱい。 :01/10/01 22:31
- それ以前にリンクの使い方を覚える、っていうのは?
- 56 :名無しさん@お腹いっぱい。 :01/10/01 22:36
- >>54
find . -ls | awk '{ path=$NF ; gsub(".*/", "", $NF); print $7"-"$NF" "path}' | sort | awk 'BEGIN{ name=""} { if ( name == $1 ) { print $2 } else { name = $1} }' | xargs rm
なんつーか力業くさいが。当然テストもしてないぞ?
あ、もちろん妙なファイル名使う子は使っちゃいけないぞ
- 57 :名無しさん@お腹いっぱい。 :01/10/01 22:37
- >>55
ハード/シンボリックリンクのことですね。
それは知ってる(と思う)
複数の美術館からもらってきた美術画像に同じものが
大量に含まれているんですよ。
- 58 :55 :01/10/01 22:44
- >>57
そっか。ごめんね。鬱死。
- 59 :名無しさん@お腹いっぱい。 :01/10/01 22:53
- >>56
なるほど.... find -lsで"バイト数-名前 ディレクトリつきの名前" という形
にしてソートして抽出するわけですね。変なファイル名もはいっているので
(オレが作ったわけじゃないから)、自分でももうちょっと考えてみます。
しかしよく考えたら数万行ソートしなきゃならんのだな。
- 60 :名無しさん@お腹いっぱい。 :01/10/01 23:06
- >>59
> しかしよく考えたら数万行ソートしなきゃならんのだな。
ソート(そーっと)やって下さい。(オヤヂギャグ)
- 61 :59 :01/10/01 23:12
- 11万行ぐらいあるけど、
今の機械ではこれくらい一瞬ですね。
変な名前のファイルはあらかじめ排除しておくことにしたけど、
大文字小文字の問題があることを発見したのでもうちょっと検査中。
参考になりました。ども。
- 62 :名無しさん@お腹いっぱい。 :01/10/02 05:15
- >>57
キャッツアイ?
- 63 :59 :01/10/07 17:20
- その後、ファイル名とサイズがいっしょってだけでは
まだまだ重複があることに気づき、
find -type f -exec md5 -r {} \;
してリストをつくり、
#! /usr/bin/perl
while(<>) {
($md5, $filename) = /^([0-9a-z]+) (.*)$/;
if ($md5 =~ $prev_md5) {
print "$prev_filename\n$filename\n";
}
$prev_md5 = $md5; $prev_filename = $filename;
}
ってなフィルタを通して
MD5がいっしょのファイルを抽出することにしました。
ばかみたい。
- 64 :名無しさん@お腹いっぱい。 :01/10/07 17:30
- どっかで見た記憶が... と思って freshmeat で "duplicate"
で検索すると、そのものズバリのソフトが結構出て来たぞ。
- 65 :名無しさん@お腹いっぱい。 :01/10/07 17:36
- 多くは書かないたった一行。
- 66 :名無しさん@お腹いっぱい。 :01/10/07 18:20
- >>65
うまい!座布団3枚!
- 67 :59 :01/10/07 19:03
- >>65
やっぱり rm -rf * ってこと?
- 68 :かりんと :01/10/07 21:16
- お祝いに美術画像おくれ。
新着レスの表示
掲示板に戻る 全部 前100 次100 最新50read.cgi ver5.26+ (01/10/21-)