grepで漢字のみ抽出したい。正規表現を使うからegrepならイケそう。
ls | egrep 漢字 ができれば良さそう。
サンプルはこれ。
「DB」の後ろに漢字がくる行のみ抽出したい。
いつものこのサイトを参考にさせてもらう。
漢字でgrepするにはいくつか方法があるみたいだけど、より簡単で手が覚えそうなのは「文字で範囲を指定する」方法。
とある。
「カタカナ」「漢字」「句読点」の3つを試してみる。
イメージとしては
$ ls | egrep 'DB[亜-熙]'
$ ls | egrep 'DB[ァ-ン]'
$ ls | egrep 'DB[ -】]'
でできそう。
やってみる。
「DB漢字」と続くもののみ抽出する。
$ ls | egrep 'DB[亜-熙]'
すげぇ。一発でできた。こりゃ便利だ。
「DBカタカナ」と続くもののみ抽出する。
$ ls | egrep 'DB[ァ-ン]'
素晴らしい。
「DB句読点」と続くもののみ抽出する。
$ ls | egrep 'DB[ -】]'
かなり実用だ。
macOSのmemoアプリにも入れておく。すぐコピペできるように。
$ ls | egrep 'DB[亜-熙]'
$ ls | egrep 'DB[ァ-ン]'
$ ls | egrep 'DB[ -】]'
今度はPerlのUnicodeプロパティスクリプトを使う方法でやってみる。
Perlを使うときは grep -P とするらしい。やってみる。
漢字のみ抽出。
$ ls | grep -P 'DB\p{Han}'
すごい。Hanは漢字の「漢」のことだろうか?あと、pの前のバックスラッシュを円マークにすると正しくgrepできないようなので要注意。
カタカナのみ抽出。
$ ls | grep -P 'DB\p{Katakana}'
素晴らしすぎる。覚えやすい。超実用。
Linux最高。これ知ってるだけで人生の幅が10倍くらいに拡がる。
参考)