LoginSignup
0
0

More than 1 year has passed since last update.

Linux入門 3-7 正規表現を使用したテキストファイルの検索

Last updated at Posted at 2022-01-17

はじめに

Linux初学者である自分向け用の記事です。Udemyの動画講座を参考にしました。
僕の勉強法は動画を見る実際に動かしてみる問題演習という流れです。

前回まで:Linux入門 3-6


3. LinuC 101 Ver .10.0(問題、テスト、演習)

正規表現を使用したテキストファイルの検索

正規表現

. 任意の一文字
* 直前の文字の0回以上の繰り返し
? 直前の文字の0回、1回
+ 直前の文字の1回以上の繰り返し
[] []で囲んだ文字の一文字
[a-z] a-zまでの文字
[^a] a以外
() ()内の文字を一文字として扱う
{n} 直前の文字のn回繰り返し
{min, max} 直前の文字のmin以上max以下の繰り返し
^ 行の先頭
$ 行の末尾
¥ 次の文字を正規表現とする。
¥t タブ
¥n 改行
| いずれか複数の条件

正規表現チェッカーで学習しよう。

grep

文字列と正規表現を用いて検索するコマンド
–v: 特定の文字列を含まない行を抽出
–E: 正規表現を用いて文字を抽出(デフォルトでも正規表現は利用されるが、限定されている。-Eで拡張できる)
–F: 正規表現を利用しない
–n: 行数を付加して抽出
–i: 文字列の大文字と小文字を区別しない

[root@c6140de26466 3]# cat test.txt 
Hi
this
is this file
123 456
abcde
ABCDE
[ABCDE]
[root@c6140de26466 3]# grep this test.txt 
this
is this file
[root@c6140de26466 3]# grep -i abcde test.txt 
abcde
ABCDE
[ABCDE]
[root@c6140de26466 3]# grep \\[ABCDE\\] test.txt 
[ABCDE]
[root@c6140de26466 3]# grep -F [ABCDE] test.txt 
[ABCDE]
[root@c6140de26466 3]# grep 'is(.*?)file' test.txt 
[root@c6140de26466 3]# grep -E 'is(.*?)file' test.txt 
is this file
[root@c6140de26466 3]# egrep 'is(.*?)file' test.txt 
is this file

egrep

正規表現を用いて文字列の検索をする。(grep –Eと同様)
–n: 行数も表示
–v: 検索文字列を含まない行を抽出
–i: 文字列の大文字と小文字を区別しない

fgrep

正規表現を利用しない(grep –Fと同様)
–n: 行数も表示
–v: 検索文字列を含まない行を抽出
–i: 文字列の大文字と小文字を区別しない

エディタを使った基本的なファイル編集の実行

エディタの基本
Linuxで利用するエディタには、主にvi, vim, nanoがあります。

vi

Linuxの標準的なエディタ。使用方法は前章をご参照ください。

vim

viを改良したもので以下のような特徴がある

  • シェル、C言語、pythonなどのプログラミング言語の編集に色がつき利用しやすい
  • gzip, zipなどの圧縮されたファイルの編集ができる
  • vimdiffを用いて、複数のファイルを比較・編集できる

nano

Ubuntuでの標準エディタ。操作が簡単で比較的簡単に利用開始できる。

[root@c6140de26466 3]# yum install nano

EDITOR

エディタのパスを指定して、デフォルトのエディタを変更することができる。

[root@c6140de26466 3]# export EDITOR=/usr/bin/vim

To Be Continued...
Linux入門 3-8


0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0