2015-08-01から1ヶ月間の記事一覧
grepで何行目か知りたい場合、-nオプションです。 実際のところ wikipediaのtimezoneの記事から、Japanの含まれる行を行番号つきで見たい場合 $ cat timezones.html | grep -n Japan 744:<td><span class="flagicon"></span></td>
timeコマンドはシェルコマンドの実行時間を計るコマンドです。 使い方はちょっと特殊です。 lsコマンドの実行時間を知りたい場合、以下のようにします。 $ time ls // lsの実行結果 real 0m0.009s user 0m0.002s sys 0m0.005sパイプでも同様。 $ time seq 1 …
以前の記事で、次のような行数を指定した削除を扱いました。 $ seq 1 10 | sed -e "1 ,3d"dは [2addr]d Delete the pattern space and start the next cycle. との事なので、正規表現のあれこれと合わせて $ cat data | sed "/^$/d" hoge 42.3565 piyo 52.28…
grepのvオプションは、 -v, --invert-match Selected lines are those not matching any of the specified pat- terns. と、「一致した行以外を表示する」とかいう難儀な挙動をとります。 実際のところ $ cat data hoge 42.3565 piyo 52.2876 fuga 38.9524 l…
シンプルに「ミニコミマニア」と、内容そのまんまのパワー溢れるタイトルが魅力的。実は私、学生時代には学内向けの広報誌を作っていました。 新入生や在学生に体育館が改築されたとか、学科が再編されたとか、学生総会の結果なんかをお知らせするやつです。…
ディレクトリ作成まわりのメソッドは、以下に示す4つがあります。 このあたりだと、mvやcpとsedの合わせ技で代用できますね。 $ ls | gr8 'copy_as { sub(/\.htm$/, ".html") }' $ ls | gr8 'rename_as { sub(/\.htm$/, ".html") }' $ ls | gr8 'copy_to { …
pathsはRuby標準ライブラリのPathnameを扱うメソッドです。 読み出し時にPathnameも読み出してくれます。 $ ls | gr8 'select {end_with?("html")}.paths {|s| printf "%20s %s10", s, s.size}' timezones.html 21118310 top.html 4387010owned? やbasename…
gr8のgrepメソッドはlazyでgrepコマンドとawkを合わせた挙動を同時に実行できます。 $ ls | gr8 'grep(/(.+)(\.png)$/) {|s| printf "cp %16s %16s", "#{$1}.png", "img/#{$1.upcase}.jpg"}' cp ceo.png img/CEO.jpg cp system_sol.png img/SYSTEM_SOL.jpg$ …
gr8でも、Ruby製ライブラリを読み込むことができます。 ライブラリを読み込むには-rオプションです。 今回はgems.rbてな感じの名前でactive_supportと、自作メソッドを取り込んだファイルを作成します。 ## $ cat gems.rb require 'active_support' require …
出力結果にクォテーションを出したい場合、qメソッドか、qqメソッドをつかいます。 実際の所 qメソッド:シングルクォテーション $ cat data | gr8 -F "map{self[0].q}" 'Haruhi' 'Mikuru' 'Yuki' qqメソッド:ダブルクォーテーション $ cat data | gr8 -F "…
Fオプションをつかうと、分割文字を指定できます。 実際の所 $ cat data Haruhi!100 Mikuru!80 Yuki!120てな形にした場合、「-F"!"」てな感じで指定してあげます。 selfに配列形式で格納されています。通常のRuby配列の通り、0始まりです。 $ cat data | gr…
avgはカラムの平均を出すメソッドです。 $ cat data | grep -v "^$" | gr8 -C 2 'map(&:to_i).avg' 100.0この記法は、以下のようにショートカットができます。 $ cat data | grep -v "^$" | gr8 -C 2 'avg_i' 100.0平均があれば、合算のsumのあります。 $ ca…
gr8でのmapは1行分をselfとみなし、順繰りにぶん回すメソッドです。 gr8は内部的にRubyを使っているので……ブロックを渡す事も、&:でlambdaを渡す事ができます。 $ cat data | grep -v "^$" | gr8 -C 1 'map(&:downcase)' haruhi mikuru yuki実装はオリジナル…
「gr8」はAWKっぽい操作をRubyの構文でやるCLIツールです。 mapやinjectといったおなじみの記法が使えるので、awk脳になりきれてない私のような軟弱者にピッタリです。 導入 Rubyを導入していれば $ gem install gr8だけでいけます。 Ruby抜きでも $ curl -o…
Array#fillで新規や既存の配列を一定ルールで埋める事ができます。 実際のところ 既存の配列に手を加える事もできます。 ただし、破壊的なメソッドなので注意してください [1,2,3].fill(0) #=> [0, 0, 0] ary = (:a..:z).to_a ary.fill(nil, 0..10) #=> [nil…
北朝鮮の音楽というと、あまり有名じゃないのですが 私のような一部の趣味者にとっては 普天堡電子楽団のようなトチ狂った作りでとても印象に残る曲を出す事でカルト的な人気があります。個人的に、北の音楽が魅力的である理由は 「どこのなく残る大日本帝国…
実際のところ 0番目、2〜6番目を抽出するような場合を考えます。 ary = (:a..:z).to_a ((buf = []) << ary[0] << ary[2..6]).flatten #=> [:a, :c, :d, :e, :f, :g] ary = (:a..:z).to_a (:a..:z).to_a.values_at(0, 2..6) #=> [:a, :c, :d, :e, :f, :g]
postgresでSQLをインポートする魔界記法として"\i DATABASE.sql "てのがあります。 first=# \i ~/Downloads/dvdrental/restore.sql
psqlの-cオプションなら、ワンライナー程度の内容なら確認することができます。 $ psql mydb -c "select city from weather" city --------------- San Francisco (1 row)例の魔界めいたバックスラッシュ記法も。とりあえず確認するときには有効ですね $ psq…
mysqlだと SHOW COLUMN でテーブルのカラムを確認できます。 が、PostgreSQLだと無効なコマンドです。 確認するには、「 \d table」と何やら魔界めいたコマンドで mydb=# \d weather Table "public.weather" Column | Type | Modifiers ---------+----------…
postgresでユーザ削除するときはdropuserというコマンドを使います。 実際のところ 以下のような状況だったとします。 勝手がわからない頃にお試しで作ったユーザが2つ残ってます。 postgres=# \du List of roles Role name | Attributes | Member of -----…
E.gg Timer - a simple countdown timer「D.gg Timer」はタイムカウントをしてくれる便利系WEBサイトです。 たとえば、 http://e.ggtimer.com/5minutesなんてやると、次のようにJavaScript製のタイマーが動きます。e.ggtimer.comデフォルトでは秒指定ですが…
SQLのwhere節で使うワイルドカードは"%"です。 Postgresには、検証用に世界の国名が記載されたSQLファイルが用意されている - Bye Bye Moore で使ったファイルから、Jaを含む国名と国番号を検索するクエリは以下のとおりです。 # select name, country_id fr…
コロナ ウインドエアコン(冷房専用タイプ) シェルホワイト CW-1615(WS)コロナ(Corona)Amazonクソ暑い今日この頃、いかがお過ごしでしょうか? 私の下宿先は二階で、しかも窓が小さいため換気効率が最悪です。 去年はサーキュレーターで何とかなりましたが、…
広告とマーケティングの資料館「アド・ミュージアム東京」www.admt.jp 東京は新橋にある日本で唯一の広告ミュージアム「アドミュージアム東京」に行ってきました。 なんと、入場無料。 以下、増強中
jotコマンドでは"-w"オプションをつけてあげる事でprintf記法が使えます。 $ jot -r 5 10 20 | sed -e "s/\(.*\)/ \1 kByte/"上のようなコマンドが、次のように書き換わります。 $ jot -w "%d kByte" -r 5 10 20 11 kByte 15 kByte 18 kByte 13 kByte 14 kBy…
shuffコマンドで行をランダムに散らすことができます。 OS Xの場合は、 OS Xのdateコマンドをぶん投げたくなったら、coreutilを入れて上書きしてしまうのも手 - Bye Bye Moore で取り上げたようにcoreutilを導入した上でgshufを叩けば使えます。 $ gshuf -i …
rsコマンドでカラムをまとめることができます。 実際のところ jotで100個の数をランダムに生成し、それを10×10の行列にする場合 $ jot -r 100 | rs 10 10 31 38 5 54 35 22 12 62 90 41 34 74 30 50 94 49 52 23 13 93 10 91 7 74 93 79 25 51 75 46 …
sedでグループ化にマッチしたモノは"\NUM"に入ります。 具体例 192.168.0.NUMという数値列を作る場合を想定します。 seqで1から9までの数値を生成し、sedで置換という手順で作ろうとすると以下のようになります。 $ seq 1 9 | sed -e "s/\([0-9]\)*/host 1…
XPathで特定の条件に合致した親を持つ要素を抽出する - Bye Bye Mooreshuzo-kino.hateblo.jp で書いた base = doc.xpath("//table[1]//tr") name = base.xpath(".//td[../../../table/tr/td[.//img]][1]") というスクリプトにつちえ、 知人から以下のように…