Perl
以下のような1ファイルにファイル名とSQLテキストがまとめて書かれているファイルを filename1.sql、filename2.sql、filename3.sql のように別々のファイルに分割して、ファイルの中身に "select * from t1;" のような SQL テキストになるようにする bash ス…
Perl ワンライナーでシェル変数を渡すには -s オプションを使えばよい。 書式 perl -se '...' -- -Perlで使う変数名=シェル変数名 実行例 $ FOO=bar; perl -sle 'print $var' -- -var=$FOO bar 参考 sオプションを使います echo -e "hogehoge\nfugafuga" > m…
障害対応でのログ解析、ソースコードの調査といったテキスト処理で使った Perl ワンライナー集です。 マルチライナーやいけてないのもありますw Perl ワンライナーの好きなところ Perl は Oracle Database (10g以降) に同梱されているので、Windows プラット…
perl -lane '$F[2]=~s/^([a-z]+).*/$1/; $h->{$F[1]}->{$F[2]}++;END{map{$t=$_ and print $t;map{print qq/$t\t$_\t$h->{$t}->{$_}/} keys %{$h->{$_}}} keys %$h}'' strace.loggrep -hA 20 '^top -' top.logperl -lane '/top - ([\d:]+)/ and $t=$1;$F[0]=…
16進数から10進数に変換 perl -e 'map{print hex($_)} @ARGV' 4a98 10進数から16進数に変換 perl -e 'printf qq/%X/, 19096'
$ perl -MTime::HiRes -e 'while(1){for(1..10000){};Time::HiRes::sleep(0.0001)}' 参考 CPU使用率を 100% にする Perl ワンライナー - ablog
事象 Perl スクリプトから sudo で xentop を実行したら、 @xentopout = `/usr/bin/sudo /usr/sbin/xentop -bf -i 2 -d 2 2>&1`; 以下の通り怒られた。 sudo: sorry, you must have a tty to run sudo 対処方法 visudo で /etc/sudoers の"Defaults requiret…
ソースコード検索ツール ack の存在を知ったのは4年位前だけど、今更使ってみた。*1 インストール # yum install ack 使ってみる 良い感じ。 参考 ack使い方メモ - アルパカDiary Pro *1:grepやackよりも速いコード検索ツールのagをローカルビルドインストー…
タイトルは釣りですw*1とあるテキストファイルを加工してCSVファイルを出力する Perl スクリプトがあり、ディレクトリ内のファイルをリストアップしてCSVファイルに出力しているのだが、なぜファイル名でソートされていないのか聞かれたので調べてみた。その…
% perl -pe '/sssn[0-9]+s:/ and chop' iostat.txt > iostat_tmp.txt % perl -pe 's/(sssn[0-9]+s:[\/\w]+)iostat\s[0-9\/]{10}\s[0-9:]{8}/$1/' iostat_tmp.txt > iostat_mod.txt
Perlで出力のバッファリングを無効にするにはてっどさんからのネタで、てっどさんが自力で解決した話ですけど(笑)、勉強になったのでメモ。^^;Perlの標準出力はバッファリングされてます。改行「\n」を出力すれば標準出力に出力されますけども、「\n」を出さ…
WWW::Mechanize で SSL を使うときに、継承している LWP::UserAgent の ssl_opts メソッドで証明書のパスを指定しようとしたら以下のように「Can't locate object method "ssl_opts" via package "WWW::Mechanize"」と怒られた。 ssl_test1.pl #!/usr/bin/en…
WWW::Mechanize や Web::Scraper を使って Shift-JIS のWebページをスクレイピングして CSV に保存しようとすると、「Wide character in print at ...」とエラーメッセージが出力されて文字化けするので、【Perl 文字化け解決】Wide character in print atと…
Perl で WWW::Mechanize や Web::Scraper を使ってWebサイトをスクレイピングしたことはあるが、画面遷移に JavaScript を使っている場合、どうすればよいか調べてみた。 例えば以下のように JavaScript を使ってリンクしている場合。 <a href="javaScript:next(2)">次へ</a> WWW::Scripter と…
フジモンから sed でどうするのって質問来たが、Perl で回答。 % FOO=' ,4078387448 , 53745,files, yohei happy , aaa' % echo $FOO|perl -ple 's/\s+,/,/g;s/,\s+/,/g' ,4078387448,53745,files,yohei happy,aaa
#!/usr/bin/env perl use strict; use warnings; use WWW::Mechanize; use Web::Scraper; my $mech = 'WWW::Mechanize'->new('autocheck', 1, agent =>'Mozilla/5.0'); $mech->get('https://...'); my $scraper = scraper { process '/html/body/form/input[…
コマンド perl -ne '/^top\s-\s([\d:]+)/ and print $1;/(\d+k)\sbuffers/ and print qq/ $1\n/' top.log|sort -k2 -n sort コマンドも使ってます 出力結果例 01:20:43 31425k 01:20:53 31513k 01:16:40 31567k 01:16:51 31615k
perl -lane '/^(時間:.*)/ and $t=$1;/^sda/ and $F[13] > 90 and print qq/$t $_/' iostat.log
perl -e '@stats=stat($ARGV[0]);map{($s,$m,$h,$d,$mon,$y)=localtime($_);printf(qq/%04d-%02d-%02d %02d:%02d:%02d\n/,$y+1900,$mon+1,$d,$h,$m,$s)} @stats[8,9,10]' README.TXT 参考 指定した日に更新されたファイルを探す - 合理的な混沌
Windows で Cygwin などが入ってなくて、find とか xargs とかない場合に使う Perl スクリプトを書いてみた。 #!/usr/bin/env perl use strict; use warnings; use File::Find; use File::Basename; &print_usage if ($#ARGV < 0); find(\&process, $ARGV[0]…
シリアル % echo 'To be or not to be, that is the question'| perl -lane 'map{s/,//g;$hash{lc($_)}++} @F;foreach(keys %hash){print qq/$_:$hash{$_}/}' the:1 that:1 not:1 is:1 question:1 to:2 or:1 be:2 map だけパラレル? % echo 'To be or not to…
perl-beginners #1 (http://www.perl-beginners.org/2012/01/perl-beginners-1_17.html) に行ってきた。遅刻してしまったけど。 今のところ、perl-beginnersでは以下のようなことをやりたいなーと考えています。perl及び周辺技術/ノウハウについての質問会一…
2011-10-14 04:05:01 procs memory page faults cpu r b w avm free re at pi po fr de sr in sy cs us sy id 2 0 0 535206 3325748 0 0 0 0 0 0 0 2043 5411 125 0 5 95 4 0 0 535206 3324971 0 0 0 0 0 0 0 3810 2980 234 0 6 94 2011-10-14 04:06:01 proc…
こんな感じでできたのでメモ。 ソースコード filehandle.pl #!/usr/bin/env perl use strict; use warnings; my @array = (1,2,3,4,5,6,7,8,9,10); foreach my $item (@array) { no strict "refs"; my $fh = "OUT${item}"; open (${$fh}, ">", "${item}.txt"…
Perlクックブック〈VOLUME1〉作者: トムクリスチャンセン,ネイザントーキントン,Tom Christiansen,Nathan Torkington,Shibuya Perl Mongers,ドキュメントシステム出版社/メーカー: オライリージャパン発売日: 2004/09/01メディア: 単行本購入: 1人 クリック:…
String found where operator expected at ./status_log_spliter.pl line 109, near "} "$line\n"" (Missing operator before "$line\n"?) ある Perl スクリプトを実行すると、実行はできるけど「String found where operator expected」と怒られるので、 pr…
こんにちは、コードゴルフ界の飛ばし屋ですw*1 自分用のメモです。アクティブセッション数の集計に使ったもの。レコードセパレータを段落に、フィールドセパレータを改行にしています。 perl -00 -F'\n' -lane '$sum=0;map{@line=split(q/,/,$_);$sum+=$line…
久しぶりに Perl スクリプトをデバッグしたのでメモ。 デバッガを使う % perl -d hoge.pl DB<1> h List/search source lines: Control script execution: l [ln|sub] List source code T Stack trace - or . List previous/current line s [expr] Single ste…
% perldoc perl ... Reference Manual ... perlvar Perl predefined variables perlre Perl regular expressions, the rest of the story % perldoc perlvar $/ The input record separator, newline by default. This influences Perl's idea of what a "li…
ls *.out|xargs -n1 perl -lane 'if(/^sdk/){for($i=1;$i<=$#F;$i++){$t[$i-1]+=$F[$i]};$c++};END{print qq/$ARGV\t/.join(qq/\t/,map{sprintf(qq/%.2f/,$_/$c)}@t)}'