タグ

2016年9月19日のブックマーク (4件)

  • 環境に依存しないワンライナーを書くならsedよりperlの方がいい - Qiita

    まえがき sedで環境に依存しないワンライナーを書きたかったけど、BSDとGNUの実装で微妙に挙動が違うせいで難しかった。で、いっそのことperlで書いた方がいいのでは、という結論になった。ぐぐったらperlのワンライナーの書き方出てくるけど何でそう動くのか分からなかったのでそれも調べた。そこらへんについてまとめる。 GNU sedとBSD sedの違い、perlからsedへの乗り換え方簡易版、その詳細、という感じでまとめたので知りたいところからどうぞ。 sedにはGNU sedとBSD sedがある sedで とかしようとすると実行する環境によって失敗する。 sedにはBSDの実装とGNUの実装があるからだ。-EはBSD sedで拡張正規表現を使うオプションで、GNU sedで拡張正規表現を使いたければ-rを使う必要がある。 じゃあ拡張正規表現を使わずにデフォルトの正規表現を使えばいいの

    環境に依存しないワンライナーを書くならsedよりperlの方がいい - Qiita
  • なるべく書かないawkの使い方 - ザリガニが見ていた...。

    awkという、古くからのスクリプト言語がある。(1977年生まれ。読み方は「オーク」である。エイ・ダブリュ・ケイではない)man awkをPDFに変換してみると、たったの3ページ強しかない。 $ man -t awk|pstopdf -i -o ~/Downloads/awk.pdf とてもシンプルな言語仕様ではあるが、awkには必要十分な表現力がある。特にテキストを処理する場面においては、最小限のシンプルな記述で、気の利いた処理を素早くこなす。無駄のないawkワンライナーを見ると、ある種の感動を覚える。awk以降に生まれたスクリプト言語は、少なからずawkの影響を受けていると思われる。 awkを知ることで、間違いなく幸福度は上がると思う。いつかきっと「知ってて良かった」と思える時が来るはず。もっともっと、awkを知りたくなってきた。 基動作 awkの基動作は、とってもシンプルである。

    なるべく書かないawkの使い方 - ザリガニが見ていた...。
  • grepの-oオプションと-Pオプションの組み合わせが便利 - Gre's Blog(跡地)

    $ paste <(cat score | grep -oP '[^\d]+') <(cat score | grep -oP '\d+') | xargs -n 2 #シェル芸— ぐれ (@grethlen) 2014, 6月 14 上記のようにgrepコマンドを叩いていたら「-oPってオプションなに?」と言われたので。 grep -oPって? -oオプションとは --only-matchingの略。マッチした部分のみを抽出するというオプションのこと。 $ echo "123abc456dfg" | grep -o [a-z] a b c d f g -Pオプションとは マッチさせる文字列にPerlで使われているものと同じ正規表現(Perl正規表現)をつかえるようにする。PerlのP。 普通の正規表現とPerl正規表現の違いって? 主に以下の3つ。 一部のメタ文字が使える [参考] \d

    grepの-oオプションと-Pオプションの組み合わせが便利 - Gre's Blog(跡地)
  • grepでこういう時はどうする? - Qiita

    文字列を抽出するときも、抽出除外するときも便利なGREP、LinuxでCUI操作をするには無くてはならない存在です ほとんど抽出にしか使いませんが、多少覚え書きがありましたので共有しておきます よく使う使い方 grep 検索したい文字列 検索したいテキストファイル コマンド | grep 検索したい文字列 grep -e 検索したい文字列1 -e 検索したい文字列2 検索したいテキストファイル grep -i 検索したい文字列 検索したいテキストファイル grep -E '正規表現' source.txt #利用できる正規表現 . 改行文字以外の任意の1文字 * 直前の1文字の0回以上の繰り返しに一致。直前の文字は正規表現でも構わない ^ 行の先頭 $ 行の末尾 [ ] かっこ内の任意の1文字に一致。ハイフン(-)で範囲指定もできる [^ ] かっこ内の任意の1文字に不一致。ハイフン(-)

    grepでこういう時はどうする? - Qiita