sh

grepした結果をgit log に入れて日付でソートする

sh

あるキーワード周辺で行われた最近の更新の更新を見たかった。 git log のフォーマットを日付でだしてsortしている。 clear && grep 'what new' -lr /prj/dir/ \ | xargs git log --pretty='%ad %an %s' --date=short \ | sort -r \ | head -50

さっくりと正規表現置換 pbpaste pbcopy 便利ですね

選択範囲だけさっくりと正規表現をつかって置換できたらなあと思っていて、 sublime textのプラグイン(python)でも書いてみようかなと思っていたけれども、 下記のようなコマンドで要望は満たせることに気がついた macOSXだと pbpaste, pbcopy が非常に便利…

メソッド名の一括変更みたいな操作 置換。

sh

# メソッド名が出現する所を確認 $ grep `置換したい単語` -r `~/対象ディレクトリ` # OKなら実際に置換 $ grep `置換したい単語` -lr `~/対象ディレクトリ` | xargs perl -i -pe 's/置換前/置換後/g などの処理' 毎回入力しながら不安になるオプションたちg…

grep のオプション -v, -F, -Pが便利

sh

grep のオプション -v, -F, -Pあたりがよく使う 知ってたら便利なのがたくさんあるけど、 この3つはいつでも使えるのでおぼえやすい。 v 指定した文字列を含まない行を表示 P: Perlの正規表現を使用できる。 '\d{,3}'みたいな指定が出来る。 r 指定サブディ…

複数ファイルを比較して、全てに共通した行のみを出力する

sh

下記の3つのファイルの場合file1 1 2 3 4 5 file2 7 6 5 4 3 file3 1 9 7 5 3 こんなものを出力 $ ./allcomm.sh file1 file2 file3 3 5 ソース allcomm.sh #!/bin/sh PREF=allcomm_tmp_sorted_ # 途中終了時のゴミ掃除 trap "rm -f $PREF*; exit 1" HUP INT …

コマンドラインオプション -a から -z まで

コマンドをつくって、そのオプションを実装するとき、 -a とか -e とか、この機能だとどのアルファベットを 割り当てるのが正当なのか悩むことがある。あと、このコマンドってこの引数使えるのかなとか、 あたりをつけたいときがある。こういう情報ってググ…

sqliteでcsvファイルをインポート。sqliteすごい

sh

こんな感じのcsvファイル、tensuu.csvがあるとして 1,100 2,80 3,60 これをRDBテーブルにしたいsqliteすぐ出来る。 $ sqlite3 tmpdb -- テーブルを作って sqlite> create table score_table(id INTEGER, score INTEGER); -- 区切り文字を設定して sqlite> .s…

fatal: protocol error: bad line length character: # Us

いきなり以下のエラーが出てリモートのgitリポジトリに触れなくなった $ git pull origin master fatal: protocol error: bad line length character: # Us http://stackoverflow.com/questions/8170436/git-remote-error-fatal-protocol-error-bad-line-len…

ターミナルのコマンドラインで色付きの文字をprintするpython

python -c "print ''.join(['\033[%sm%s\033[0m' % (n, u'P') for n in range(30, 38)])"

Djangoのカスタムタグを使用頻度順で出力するシェルスクリプト

sh

新しく入ったデザイナーさんが djangoのカスタムタグの仕様頻度ランキングが知りたいとのことなので 休み時間にシェルの勉強のつもりで #!/bin/sh # 1つ目の引数にテンプレートのディレクトリとかのパス # 2つ目の引数に結果を出力するファイルパスを入れて…

サクラのライトプラン上でpythonのcgiファイルからレスポンスを返す

まずcgiファイルを作成 try.cgi #!/usr/local/bin/python # -*- coding: utf-8 -*- class Main(object): @staticmethod def response(): print "Content-Type: text/html\n" print "<html><body>hello!</body></html>" Main.response() ftpの手順をファイルへ deploy.ftpcmd open ドメ…

bashのfor文の引数の区切り方

sh

shのfor文は渡した文字列をホワイトスペース区切りで変数に代入してく for i in 1 2 3 4 5; do echo "$i" done こういうことをしたい loglines=$(perl -nle '$. < 10 and print;' log) やり方は色々あるけどこうすると改行区切りで代入してくれるみたい # se…

正規表現で範囲演算子(フリップフロップ演算子)

perlでこんな正規表現を書くと行をまたいでマッチしてくれる /RE1/.../RE2/たとえば9時から12時までのログファイルを引っ掛けたいときは /09:00:00/.../12:00:00/ ワンライナーにすると下記のような感じ。 perl -nle '/09:00:00/ ... /12:00:00/ and print;'…

Linuxで作成したテキストファイルをWindowを使ってる人に送るときによくやること

sh

# 文字コードを調べる nkf -g file_name.txt #改行コードを確認する od -c file_name.txt # 改行コードをLF/CRのものを生成する nkf -Lw file_name.txt > output.txt # そのファイルの改行コードをLF/CRに変更してしまって良いなら nkf -Lw --overwrite file…

VPS上にgitのリポジトリ作成

sh

## remote側 su # -> rootに adduser git passwd git # -> パスワード設定 su git cd ~/ mkdir hoge.git cd hoge.git git --bare init ## local側 cd ~/dev/hoge git init touch README.txt git commit -m 'first commit' -a git remote add origin ssh://gi…

git 間違えてcommitしたときに「今のなし」にするの

sh

いつもgitでコミットする際に -a オプションをつけてやっている git commit -m "コミットメッセージ" -a これをつけるとgit add .してからコミットするのと同じになるので 面倒省けてでよいよねと思うのだけれども、 手癖になっていて時々意図しない-aを入れ…

サクラの月額125円のサーバーでcgiが動かしてみた。

ここの手順をもとにひな形のソースを入手して http://d.hatena.ne.jp/perlcodesample/20101221/1300165343ここでCGIの仕組みをフムフムしながらセットアップした http://home.e02.itscom.net/shouji/raku/kouza/doc/doc-8.htmlサーバを借りて、ローカルで動…

macでパスワード付きzipファイルを作る

sh

zipコマンドに-Pオプションをつけて、引数にパスワードを渡せば出来る。 $ zip -P password sakamoto/Desktop/sakusei_file.zip assyukusuru_file1 assyukusuru_file2,,,

coffeescriptでファイルに変更があったら自動的にコンパイルするコマンド

自分は下記のコマンドをうったらうまい感じになった。 coffee -cw /var/work/konpairusitai/fairu.coffee -w が -watch (ファイル変更を監視)で -c が -conpile(コンパイル) ctrl + s してブラウザを更新したら、反映されてる形

改行コードでハマって悔しかった

sh

windowsとmacとlinuxで改行コードは全部違う。 パッと見だとどの改行コードが使われてるか分からないので od コマンドで確認する od -c hatehate.txtなんか文字列がバーッと出てくる\r \n などのように改行コードが2重に入れられていたら それはビルゲイツの…