web-dev-qa-db-ja.com

Linuxで文字列を含む行を見つける方法

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

38
alwbtc

これを行う通常の方法は、grepを使用することです

grep 'pattern' file
57
knittl

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

$ grep pattern filename

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

6
Brian Agnew

/ tmp/myfile

first line text
wanted text
other text

コマンド

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

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:~$ 

。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:~$ 

お役に立てれば

3
Sabrina