コマンド ラインから特定の文字列をディレクトリ (またはサブディレクトリ) の下のファイルのリストで検索し、その文字列を含むすべてのファイルを表示するシェル スクリプトの作成方法。
質問する
1386 次
3 に答える
2
必要なものが得られる場合は、これを試してください:
grep -rl "string" **/*
于 2013-03-05T12:54:16.173 に答える
0
基本的な例:
#!/bin/sh
STRING=$1
DIR=$2
find $DIR -type f -exec grep -l $STRING {} \;
空白などを処理するための修正は、学生の演習として残されています。
スクリプトに「findfile.sh」という名前を付け、最初の引数 = 検索する文字列、2 番目の引数 = 検索するディレクトリで実行します。次のようにします。
[jenny@ryo-ohki:tmp]$ ./findstring.sh lyskom /home/jenny/src/elisp
/home/jenny/src/elisp/lyskom-elisp-client-all-0.48/README
/home/jenny/src/elisp/lyskom-elisp-client-all-0.48/lyskom-all-0.48.el
/home/jenny/src/elisp/lyskom-elisp-client-all-0.48/lyskom-all-0.48.elc
/home/jenny/src/elisp/lyskom-elisp-client-all-0.48/NEWS-0.48
/home/jenny/src/elisp/lyskom-all-0.48.elc
/home/jenny/src/elisp/lyskom-swedish-0.48.elc
/home/jenny/src/elisp/lyskom.elc
ご覧のとおり、ディレクトリ /home/jenny/src/elisp/ とそのサブディレクトリに「lyskom」という単語を含むすべてのファイルが一覧表示されます。
于 2013-03-05T12:54:49.390 に答える
0
このシェルスクリプトは、指定された文字列を含むすべてのファイルを表示します
#!/bin/bash
grep -l "$1" *
それをfind_util.shとして保存して実行できます
chmod a+x find_util.sh
./find_util.sh search
サブディレクトリも検索する場合は、次のように変更できます
#!/bin/bash
grep -lr "$1" *
于 2013-03-05T12:56:36.577 に答える