見出し画像

EnvaderでLinuxの基礎を学ぶ[正規表現]

EnvaderでLinuxの基礎を学ぶ。
今回は、Linux基礎コースの「正規表現編」です。

Linux関連のお勉強は、オプションとかコマンドとか基本的に使っていかないと覚えられないなと思いますが、正規表現ってわかりそうで、なかなか覚えられないもののひとつ。なんかよい覚え方ないだろうか。

Envaderでは、この正規表現編で、正規表現とその6でも少し書いた、ファイル内の特定の文字列を検索するためのコマンドである「grep」コマンドを学びます。Envaderの基礎コースのタイトルが「正規表現について」となっているので、ちょっとわかりにくいです。
「grep」コマンドって重要なコマンドな気がするので、ちゃんとタイトルにかいたほうがよいかも? とちょっと思った。

正規表現をなかなか使いこなせないのは、オプションのように使う、この特殊文字が覚えられないから。

【正規表現で使われる特殊文字】
^文字 → 行頭の文字は何かを表す
$文字 → 行末の文字は何かを表す
. → 任意の1文字があることを表す
→ 直前の文字を0回以上繰り返すことを表す
[文字] →[]の中に入っている文字のどれかがあることを表す
[^文字] → []の中に入っている以外の文字を表す
¥ → 正規表現で使われている記号をふつうの文字として使う
() → 正規表現適用範囲のグループ化

普段仕事で、テキストエディタの「秀丸」などは正規表現を使用して文章ないを検索できるので、行頭の改行を検索するとか余分な半角スペースを探すとか、使用するけど、毎回特殊文字をググるはめになって覚えられない…。

Linuxでも、grepコマンドと組み合わせることで、さまざま検索を行うことができる。

Envaderの例でいうと、基本的な使い方は以下の通り。

grep 特定の文字 ファイル名

例1: sample.txtの中身で最初の文字がaかbの行を探したいとき

grep ^[ab] sample.txt

例2: カレントディレクトリにあるmainという名前のgoとjavaのファイルを探したいとき(lsコマンドとパイプでつなぐ)

ls | grep -E '^main\.[(go$)(java$)]'

これ、特殊文字がわからないと、何のことやらですよね……

grepの-Eオプションは、正規表現を使うときにつける。

この辺になるEnvaderの問題もちょっとだけひねりがでてきて、grepの練習をすることになります。

Envaderの問題
secrets.txtの中身。grepと正規表現で正解を見つけ出す。

さて、正規表現もちゃんと覚えるぞ。

もっと新しい繋がり、信頼とコミュニティを築けますように。