64

Linuxにファイルがありますが、そのファイルに特定の文字列を含む行を表示したいのですが、これを行うにはどうすればよいですか?

4

5 に答える 5

106

これを行う通常の方法はgrep、を使用することです。これは、パターンを使用して行を照合します。

grep 'pattern' file

パターンに一致する各行が出力されます。固定文字列のみを検索する場合は、を使用しますgrep -F 'pattern' file

于 2012-08-03T14:32:28.410 に答える
14

加えて、またはgrepなどの他のユーティリティを使用することもできますawksed

ここにいくつかの例があります。is。という名前のファイルで文字列を検索するとしますGPL

サンプルファイル

user@linux:~$ cat -n GPL 
     1    The GNU General Public License is a free, copyleft license for
     2    The licenses for most software and other practical works are designed
     3  the GNU General Public License is intended to guarantee your freedom to
     4  GNU General Public License for most of our software;
user@linux:~$ 

1.grep

user@linux:~$ grep is GPL 
  The GNU General Public License is a free, copyleft license for
the GNU General Public License is intended to guarantee your freedom to
user@linux:~$ 

2.awk

user@linux:~$ awk /is/ GPL 
  The GNU General Public License is a free, copyleft license for
the GNU General Public License is intended to guarantee your freedom to
user@linux:~$ 

3. sed

user@linux:~$ sed -n '/is/p' GPL
  The GNU General Public License is a free, copyleft license for
the GNU General Public License is intended to guarantee your freedom to
user@linux:~$ 

お役に立てれば

于 2018-10-25T07:05:48.833 に答える
9

/ tmp / myfile

first line text
wanted text
other text

コマンド

$ grep -n "wanted text" /tmp/myfile | awk -F  ":" '{print $1}'
2

-ngrepに切り替えると、一致した行の前に行番号(後に):が追加されます。2番目のコマンドでは、コロンを列区切り文字(-F ":")として使用し、任意の行の最初の列を出力します。最終結果は、一致する行番号のリストです。

于 2016-06-23T05:09:13.683 に答える
8

コマンドのgrepファミリー(egrep、fgrepを含む)は、これに対する通常のソリューションです。

$ grep pattern filename

ソースコードを検索している場合は、ackの方が適している可能性があります。サブディレクトリを自動的に検索し、通常は検索しないファイル(オブジェクト、SCMディレクトリなど)を回避します。

于 2012-08-03T14:36:04.180 に答える
1

キュージョブ情報を長い形式でテキストファイルに書き込みます

qstat -f > queue.txt

Grepのジョブ名

grep 'Job_Name' queue.txt

于 2020-07-29T09:45:10.703 に答える