スポンサーリンク
目次
- 正規表現を使用してのテキスト検索
- 正規表現
- grepコマンド
- sedコマンド
- ファイルの基本的な操作
- viエディタの基本
正規表現を使用してのテキスト検索
正規表現
正規表現とは、特定の条件を表す文字列を抽象的に表現したものです。
| メタキャラクタ | 説明 |
| . | 任意の1文字 ex)「a..d」は「abcd」や「ao7d」などを表します。 |
| * | 直前の文字の0回以上の繰り返し ex)「ab*c」は「ac」や「abc」や「abbc」などbの繰り返しを表します。 |
| [] | []内の文字のいずれか1文字 -:範囲を指定します。 ^:行頭にある時は「~以外」を表します。 |
| ^ | 行頭 |
| $ | 行末 |
| \ | 次に来る文字をメタキャラクタではなく通常の文字として処理します。 |
| + | 直前の文字の1回以上の繰り返し 【拡張正規表現】 |
| ? | 直前の文字の0回もしくは1回の繰り返し 【拡張正規表現】 |
| | | 左右いずれかの文字列 【拡張正規表現】 |
grepコマンド
grepコマンドは、ファイルやテキストストリームの中に、正規表現によって表される検索文字列があるかどうかを調べます。
以下、grepコマンドの書式です。
- grep [オプション] 検索パターン [ファイル名]
- grep [オプション] [-f ファイル名] [ファイル名]
| オプション | 説明 |
| -c | マッチした行の行数のみ表示します。 |
| -f | 検索パターンをファイルから読み込みます。 |
| -i | 大文字と小文字を区別しません。 |
| -n | 先頭に行番号をつけて、マッチした行を表示します。 |
| -v | マッチしなかった行を表示します。 |
| -E | 拡張正規表現を使用します。(egrepコマンドと同様) |
| -F | 検索パターンを正規表現ではなく、固定文字列とする |
sedコマンド
sedコマンドとは、ファイルや標準入力の内容を編集して表示するコマンドです。
以下、sedコマンドの書式です。
- sed [オプション] 編集コマンド [ファイル名]
- sed [オプション] -e 編集コマンド1 [-e 編集コマンド2…] [ファイル名]
| オプション | 説明 |
| -e | 編集コマンドを指定します。 |
| -f | 編集コマンドを記述したファイルを指定します。 |
| 編集コマンド | 説明 |
| s/文字列1/文字列2/ | 各行の最初に現れる文字列1を文字列2に置換 |
| s/文字列1/文字列2/g | 全ての文字列1を文字列2に置換 |
| /文字列/d | 文字列が含まれる行を削除 |
| 行番号1,行番号2d | 行番号1から行番号2までの行を削除 |
| y/文字1文字2/文字3文字4/ | 文字1を文字3に文字2を文字4置換 |
ファイルの基本的な操作
テキストファイルを編集するにはエディタを使います。
viエディタの基本
viエディタの特徴は、コマンドモードと入力モードという2つの動作モードを切り替えながら使う点です。
入力モードへの切り替え
| コマンド | 説明 |
| i | カーソルの左から入力開始 |
| a | カーソルの右から入力開始 |
| I | カーソルのある行の行頭から入力開始 |
| A | カーソルのある行の末尾から入力開始 |
| o | カーソルのある行の下に空白行を挿入し、その行から入力開始 |
| O | カーソルのある行の上に空白行を挿入し、その行から入力開始 |
入力モードからコマンドモードへ移行する時にEscキーを使用します。
カーソル及び画面操作
| コマンド | 説明 |
| h | 1文字左へ移動 |
| l | 1文字右へ移動 |
| k | 1文字上へ移動 |
| j | 1文字下へ移動 |
| 0 | 行頭へ移動 |
| $ | 行末へ移動 |
| H | 画面の最上行へ移動 |
| L | 画面の最下行へ移動 |
| gg | ファイルの先頭へ移動 |
| G | ファイルの最終行へ移動 |
| nG | ファイルのn行目へ移動 |
| :n | ファイルのn行目へ移動 |
| Ctrl+f | 次の画面へ移動 |
| Ctrl+b | 前の画面へ移動 |
viの終了、ファイルの保存、シェルコマンドの実行
| コマンド | 説明 |
| :q | ファイルへ保存せずに終了 |
| :q! | 編集中の内容を保存せずに終了 |
| :wq | 編集中の内容を保存して終了 |
| ZZ | 編集中の内容を保存して終了 |
| :w | 編集中の内容でファイルを上書き保存 |
| :e! | 最後に保存した内容に復帰 |
| :r ファイル名 | ファイルの内容をカレント行以降に読み込む |
| :! コマンド | viを終了せずにシェルコマンドを実行 |
| :r! コマンド | シェルコマンドの実行結果を挿入 |
viの編集コマンド
| コマンド | 説明 |
| yy Y | カーソル位置の行をバッファにコピー |
| yw | カーソル位置の単語をバッファにコピー |
| dd | カーソル位置の行を削除し、バッファにコピー |
| dw | カーソル位置の単語を削除し、バッファにコピー |
| x | カーソル位置の文字を削除し、バッファにコピー |
| X | カーソル位置の左の文字を削除し、バッファにコピー |
| p | バッファの内容を挿入 (文字や単語はカーソルの左、行はカーソルの上に挿入) |
| P | バッファの内容を挿入 (文字や単語はカーソルの左、行はカーソルの上に挿入) |
| u | 元に戻す(直前の操作をとりやめる) |
文字列の検索
| コマンド | 説明 |
| /文字列 | 指定した文字列をカーソル位置からファイルの末尾に向かって検索 |
| ?文字列 | 指定した文字列をカーソル位置からファイルの先頭に向かって検索 |
| n | 次を検索 |
| N | 次を検索(逆方向) |
viの設定変更
| コマンド | 説明 |
| :set nu | number | 行番号を表示 |
| :set nonu | nonumber | 行番号を表示しない |
| :set ts=タブ幅|tabstop=タブ幅 | タブ幅を数値で指定 |
最後まで読んで頂き、ありがとうございました。
他の分野へ移動できる全体ページへは下記リンクから移動できます。
スポンサーリンク
スポンサーリンク
