Posted at

いつの間にか追加してた長いワンライナーとその時のテク

アドベントカレンダー企画で、いつの間にか追加していたワンライナーを載せます。

あと、便利な覚え書き程度のテクを載せます。


gitのrootディレクトリに戻る。

標準のように多用している。

function cdg() { builtin cd `git rev-parse --show-toplevel`; return 0;}


議事録から日付を抜き出す。

find /path/議事録/`date "+%Y_%m_%d"`*.html -type f -print0 | xargs -0 grep '.\{1,2\}月.\{1,2\}日' | pup "text{}" | grep -v '^\s*$' | tail -1 | cut -c 1-20


議事録の最後の行を見る。

find . -type f -name "*議事録*" -not -name "trashed*" | tail -1 | xargs -I% cat '%'


今日の天気

livedoor天気を利用している。。APIにやさしい版はこちらhttps://qiita.com/benridane/items/6ebfe45d8abcc497d09d

curl -s http://weather.livedoor.com/forecast/webservice/json/v1\?city\=270000 | jq -r '.forecasts[0].telop'


簡単なテク解説


  • pup: go製のhtmlパーサ。https://github.com/ericchiang/pup


    • パーサーはxmllintなどあるが、いろんな環境で動くものとしておススメしたい。



  • jq: 高機能パーサ。JSONパーサ。https://stedolan.github.io/jq/



    • pup "json{}"でjsonに変換してjqで処理することもできる。



  • find: ファイル検索。



    • -not -name "trashed*"でファイルを除外できる。



  • xargs: -0を付けるとヌル文字対応になる。



    • xargs -I% cat '%'で確かスペース対策で出力できる。



  • grep: grep -v '^\s*$'で空行除外ができる。

以上、ちょっとしたテクでした。