Rainbow Engine

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

作業効率化

複数のテキストデータ(.txtや.xml)から特定の単語を一括検索する方法

投稿日:2019年9月28日 更新日:

今回のテーマは「あるフォルダ内の複数のテキストデータ(.txtなど)について、その中身を開かずに特定の単語・キーワードを検索する方法」について記載します。

(0)目次&概説

(1) Windowsの場合
 (1-1) コマンド
 (1-2) 使用例
 (1-3) 解説
 (1-4) TXT以外の形式も含めて検索する場合

(2) Linuxの場合
 (2-1) コマンド
 (2-2) 使用例
 (2-3) 解説

(1) Windowsの場合

(1-1) コマンド

findstr /S /N "[探索文字列]" *

//結果をテキストに出力したい場合
findstr /S /N "[探索文字列]" * > Search.txt

目次にもどる

(1-2) 使用例

例えば、次のディレクトリ構造のテストデータ(.txtと.xmlの混合)を考えます。

C:.
│  Test1.txt
│  Test2.txt
│  Test3.xml
│
└─Test4
        Test4.txt

(図1)テストデータのフォルダ構造

各テキストファイルの中身は下記の通りです。

(図2)テストデータの中身

このデータに対して上記のコマンドで単語「aaa」を検索します。
(図3)Windows検索結果

目次にもどる

(1-3) 解説

コマンドの解説です。

findstr テキスト形式のファイル群から文字列を検索できます。
/S サブフォルダも含めて検索します
/N 行番号を表示します
“[検索文字列]” 検索したい文字列を入力します
* 「*」は配下の全てのファイルの意味します。

「*」について、特定のファイルのみを対象としたい場合は「*.txt」や「*.xml」や「Test.*」といった記載で前方一致や後方一致で対象を絞ることも可能です。

 >目次にもどる

(1-4) TXT以外の形式も含めて検索する場合

上記の手法では拡張子「.xlsx」や「.pdf」のファイルに対して上手く検索が出来ませんが、「さくらエディタ」などのテキストエディタに付属のgrep機能を使えば、pdf形式も含めて検索ができます。

<手順>
①サクラエディタを開きます
②メニューの「検索」→「Grep」を選択します。
③検索文字(条件)と検索する拡張子種別(ファイル)と探索パス(フォルダ)を指定する
④「検索」を押下

(図4)サクラエディタのGrep

目次にもどる

(2) Linuxの場合

(2-1) コマンド

grep -rn "[検索文字列]" ./*

目次にもどる

(2-2) 使用例

Windowsの例と全く同じ構造・中身のデータを作成します。

│  Test1.txt
│  Test2.txt
│  Test3.xml
│
└─Test4
        Test4.txt

(図5)テストデータのフォルダ構造

このデータに対して、同じく単語「aaa」を検索します。

(図6)Linux検索結果

 >目次にもどる

(2-3) 解説

コマンドの解説です。

grep ファイル群の中から正規表現を利用して文字列を抽出できます
-r サブディレクトリも含めて検索する
-n 検索対象が出現する行数を表示
./* 「./*」はカレントディレクトリ配下の全てのファイルを意味します
「./*」について、特定のファイルのみを対象としたい場合は「*.txt」や「*.xml」や「Test.*」といった記載で前方一致や後方一致で対象を絞ることも可能です。

 >目次にもどる

Adsense審査用広告コード


Adsense審査用広告コード


-作業効率化

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

関連記事はありませんでした

  • English (United States)
  • 日本語
Top