Unix

grepコマンドいろいろ

grepコマンドを使うと指定したパターンに合う行あるいは合わない行を抜き出せることは知っていたが、パターンに合う行(ひょっとすると合わない行も?)の前後の行も取り出せることがわかった。
これでテキストファイルの切り出しが非常に楽になりそう。
オンラインマニュアルをたまに読んでみるとご利益があると感じた次第。

○参考になるサイト
http://orebibou.com/2014/12/grep%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%A7%E8%A6%9A%E3%81%88%E3%81%A6%E3%81%8A%E3%81%8D%E3%81%9F%E3%81%84%E4%BD%BF%E3%81%84%E6%96%B914%E5%80%8B/

重複だらけのテキストファイルから重複をなくしてすっきりさせる

解析の都合で、重複だらけのテキストファイルを生成してしまい、重複を省いてすっきりさせるためのコードを組まんといかんのかなぁと思っていたら、コマンドですっきり解決できることを発見。
(ベタな名前だが)コマンド名はuniq。
単に

uniq (text_file)

とすると、(text_file)から重複を省いて標準出力に返してくれる。
オプションで色々とできるらしい。
ありがたい、ありがたい。

○参考文献:
苔の一念岩をも通す ~目指せいつかはプログラマ~
http://d.hatena.ne.jp/stfuawsc/20090521/1242868093

grepの小ネタ

私が『たのしいUNIX』でUNIXを使うための勉強を始めた頃に既にあった古いコマンドで、最近は流行らないのかもしれないが、オンラインマニュアル等々を見て気が付いたこと。

1)「……を含まない」行を集める
hogeを含まない行をfileから集めたい場合

grep -v hoge file

とすると可能。vは小文字で、大文字ではない。

2)「○○または△△を含む」行を集める
bakaあるいはahoを含む行をfileから集めたい場合

grep "baka\|aho" file

とすると可能。
検索に使うキーワードと、それを区切る記号をダブルクォートで囲み、バックスラッシュをパイプ(|)の前に付けるのがミソ。

2018年10月
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

最近のトラックバック

無料ブログはココログ