Help us understand the problem. What is going on with this article?

コマンドラインで複数ファイルから特定の文字列を検索する

More than 5 years have passed since last update.

あまりによく使うのでメモ。

$ find . -type f -name "*.js" | xargs grep 'keyword' -n 

結果

カレントディレクトリからのファイルのパス:行数 検索文字列を含む行

./app/assets/javascripts/form.js:20:            var keyword = "opp";
./app/assets/javascripts/form.js:211:           var result = keyword + "test";

↑適当に書いたけどこんな感じに出力される。

解説

find

http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230777/
ファイルやディレクトリを検索するコマンド

.

カレントディレクトリ配下全てを指定している。
もちろんpathをしぼることも可能。

-type f

指定したファイル・タイプを検索する。
cはdがディレクトリを、fが通常ファイルを、lがシンボリック・リンクを表す。
今回は通常ファイルなのでfを指定。

-name "*.js"

ファイル名がpatternと同じファイルを検索する。ワイルド・カードを用いることができる。
例ではjsファイルのみに絞っている。

 |

前のコマンドの出力結果を後ろのコマンドに渡すやつ。
読み方がわかんないんで誰か教えてください。

# 追記(2014/05/16)

パイプですね。
_hecoさんありがとうございます。
http://ja.wikipedia.org/wiki/%E3%83%91%E3%82%A4%E3%83%97_%28%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%29

xargs

http://itpro.nikkeibp.co.jp/article/COLUMN/20140331/547143/
指定されたコマンドと初期引数に、標準入力から読み込んだ引数をつけてコマンドラインを生成し、実行するコマンド。
コマンドが指定されなかった場合はechoに送られる。

grep

http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230786/
文字列を検索するコマンド

'keyword'

検索したい文字列

-n

行数を表示する。

まとめ

複数ファイルをまとめて置換なんかも簡単にできる。
たまにしかしなくても忘れないようにしたい。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした