-1

コマンド ラインから特定の文字列をディレクトリ (またはサブディレクトリ) の下のファイルのリストで検索し、その文字列を含むすべてのファイルを表示するシェル スクリプトの作成方法。

4

3 に答える 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 に答える