ファイル内の文字列を検索
現在のbaiディレクトリで "chen "という文字列を見つけたい場合は、次のようにします。
[hadoop@hadoop101 opt]$ grep -rn "chenyuan" *
* : は、すべてのファイルのカレントディレクトリを示すが、ファイル名を指定することもできる
-r は再帰的検索である。
-n 番号を表示する
-R サブディレクトリを含むすべてのファイルを検索する
-i ケースを無視する
ここに興味深いコマンドライン引数がある:
grep -i pattern files 大文字と小文字を区別せずに検索する。デフォルトは大文字と小文字を区別する。,
grep -l pattern files 一致するファイル名だけをリストアップする,
grep -L pattern files 一致しないファイル名をリストアップする。,
grep -w pattern files 文字列の一部ではなく、単語全体にマッチする。,
grep -C number pattern files 一致するコンテキストは別に示す[number]行,
grep pattern1 | pattern2 files : pattern1またはpattern2にマッチする行を表示する。,
grep pattern1 files | grep pattern2 : pattern1とpattern2の両方にマッチする行を表示する。
検索するための特別な記号をいくつか紹介します:
[hadoop@hadoop101 opt]$ sudo touch xl.txt
[hadoop@hadoop101 opt]$ sudo chown hadoop:hadoop ll.txt
次に同じ方法でll.txt、lll.txtを作成します。それぞれyuanic、yuanと書いてください。
\< \> 単語の最初と最後に印をつける。
grep yuan* は'chenyuan'、'yuanic'、'yuan'などにマッチする。,
grep '\<yuan' * yuanic」と「yuan」にはマッチするが、「chenyuan」にはマッチしない。,
grep '\<yuan\>' 'yuan'にのみマッチし、'chenyuan'や'yuanicnic'のような他の文字列にはマッチしない。
'^': マッチする文字列が行頭にあることを意味する。,
'$'マッチする文字列が行末にあることを意味する。,
[hadoop@hadoop101 opt]$ grep -rn yuan *
[hadoop@hadoop101 opt]$ grep -rn '\<yuan' *
[hadoop@hadoop101 opt]$ grep -rn '\<yuan\>'
別のファイルへの書き込み
xl.txtの修正
[hadoop@hadoop101 opt]$ vi xl.txt
chenyuan
xl
lala
空のll.txt
[hadoop@hadoop101 opt]$ grep -i "chenyuan" -A 1 xl.txt | grep -v -e "--" >ll.txt
[hadoop@hadoop101 opt]$ cat ll.txt
chenyuan
xl





