GNU/Linux >> Linux の 問題 >  >> Linux

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

/tmp/myfile

first line text
wanted text
other text

コマンド

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

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


grep以外に 、 awk などの他のユーティリティも使用できます または sed

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

サンプル ファイル

[email protected]:~$ 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;
[email protected]:~$ 

<強い>1. grep

[email protected]:~$ 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
[email protected]:~$ 

<強い>2.わかりました

[email protected]:~$ 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
[email protected]:~$ 

<強い>3.セド

[email protected]:~$ 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
[email protected]:~$ 

これが役に立てば幸いです


コマンドの grep ファミリ (egrep、fgrep を含む) は、これに対する通常の解決策です。

$ grep pattern filename

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


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

grep 'pattern' file

パターンに一致する各行が出力されます。固定文字列のみを検索したい場合は grep -F 'pattern' file を使用してください . fgrep grep -F の短縮形です .

sed も使用できます :

sed -n '/pattern/p' file

または awk :

awk '/pattern/' file

Linux
  1. Linux で GREP を使用して特定のテキストを検索する方法

  2. Linuxで2つの文字列を一緒に含むファイルを見つける方法は?

  3. Linux システムがインストールされてからどれくらい経ったかを調べるにはどうすればよいですか?

  1. LinuxでFINDを使用する方法

  2. Linuxでファイルを見つける方法

  3. Linuxコマンド:テキストファイルのみを「検索」する方法は?

  1. Linuxでテキストを含まないテキストファイルを見つける方法は?

  2. Linux で特定のテキストを含むすべてのファイルを見つけるにはどうすればよいですか?

  3. ファイルに文字列を含む行を取得するには?