おぼえがき
おぼえがき
egrep 単語区切り
egrep 単語区切り
ファイル
cat test
aa bb c ddcc
aa bb cc dd
これで、ccをgrepしたい。但し、ccって言う単語だけ欲しくて、
ccが含まれている単語は、要らない
egrep '¥<cc¥>' test
aa bb cc dd
¥<¥>がみそ
まぁ、¥bと一緒やな
ファイル
cat test
aa bb c ddcc
aa bb cc dd
これで、ccをgrepしたい。但し、ccって言う単語だけ欲しくて、
ccが含まれている単語は、要らない
egrep '¥<cc¥>' test
aa bb cc dd
¥<¥>がみそ
まぁ、¥bと一緒やな
コメント ( 0 )
awk match関数を複数つかう。
ログから携帯かつ、必要なアクション名のカウントを抽出したかった
cat ${ファイル名} |
awk -F" " 'match (tolower($13), /"(docomo|kddi|up.browser|
j-phone|vodafone|mot-|softbank)/) &&
match($8, /${必要なアクション}/)
{print $13, $8}' | wc -l
※実際は、一行
matchを2つ使いたいときは、&& で「且つ」にしてあげればいいみたい。
match関数の中で、正規表現使うじゃない。
で
/正規表現/i
ってやったら、大文字小文字関係なしに、判定してくれるかと
おもったら、動かんのよ。何故だろ。
で、しかたなく、tolower($13)を使ってみた。
正規表現の区切りを"/"じゃなくて、"#"にしても動かんし・・・
なんか、制約がきっとあるなぁ
教えてgooで聞いてみたら
そういうもんだ
と回答が来た。
そういうもんか・・・
cat ${ファイル名} |
awk -F" " 'match (tolower($13), /"(docomo|kddi|up.browser|
j-phone|vodafone|mot-|softbank)/) &&
match($8, /${必要なアクション}/)
{print $13, $8}' | wc -l
※実際は、一行
matchを2つ使いたいときは、&& で「且つ」にしてあげればいいみたい。
match関数の中で、正規表現使うじゃない。
で
/正規表現/i
ってやったら、大文字小文字関係なしに、判定してくれるかと
おもったら、動かんのよ。何故だろ。
で、しかたなく、tolower($13)を使ってみた。
正規表現の区切りを"/"じゃなくて、"#"にしても動かんし・・・
なんか、制約がきっとあるなぁ
教えてgooで聞いてみたら
そういうもんだ
と回答が来た。
そういうもんか・・・
コメント ( 0 )
bash getoptコマンド
getoptsを使ってみる。
while getopts ":abd:h" options
do
case $options in
a | b) 何らかの処理;; # comment
d ) OPTDATE=${OPTARG};; # comment
h | *) _usage;exit;; # comment
esac
done
shift $(($OPTIND -1))
ってやってみる。
オプション
a
b
h
には、オプションに対する引数はない。
d
には、dの後ろに:がついてるんで、引数があるってこと
になる。
引数は、${OPTARG}で取得することができる。
h|*
は、ヘルプを表示する。
abdの先頭に:がついているのは、自分で、オプション以外の
物が来たときにハンドリングするという宣言。
:が先頭になければ、getoptsがエラーハンドリングする。
次に、
shift $(($OPTIND -1))
の処理について・・・
${コマンド}-a -b -d hogehoge -h XYZ 123
ってやったとき
getoptsコマンド終了後、次は、残りの引数を
処理したい。ここで言えば、XYZ 123
オプション部分のみを切り取りたいので
shift $(($OPTIND -1))
を付けること。
んーー。いまいち、しっくりこないが、
これでいけるはず。
もうちょっと、ちゃんと調べないとな
コメント ( 0 )
bash これはよむ
http://tiki.is.os-omicron.org/tiki.cgi?c=v&p=bash
http://www-06.ibm.com/jp/developerworks/linux/010615/j_l-bashfv.html
http://www-06.ibm.com/jp/developerworks/linux/010615/j_l-bashfv.html
コメント ( 0 )
bash ファイルの中身を消す
ファイルの中身を消すとき。
一度開いて、"1,$d" ってやって保存
sed -e "1,$d" ${ファイル}
っていうのより。
cat /dev/null > ${ファイル}
ちなみに
: > ${ファイル}
で同じ意味
っていうほうが良いね。
一度開いて、"1,$d" ってやって保存
sed -e "1,$d" ${ファイル}
っていうのより。
cat /dev/null > ${ファイル}
ちなみに
: > ${ファイル}
で同じ意味
っていうほうが良いね。
コメント ( 0 )
« 前ページ | 次ページ » |