grepコマンドライン

3762 ワード

grepコマンドライン
grep(global search regular expression(RE)and print out the line、正規表現を全面的に検索し、行を印刷する)は、正規表現を使用してテキストを検索し、一致する行を印刷する強力なテキスト検索ツールです.
オプション
-a          。
-A                 ,          。
-b                ,          。
-c            。
-C -                  ,           。
-d                ,        ,  grep            。
-e                   。
-E                  ,               。
-f       ,             , grep             ,           。
-F                。
-G                 。
-h                ,            。
-H                ,         。
-i           。
-l                     。
-L                      。
-n                ,        。
-q        。
-R/-r          “-d recurse”    。
-s        。
-v     。
-w          。
-x          。
-y       “-i”  。
-o             。

grepコマンドの一般的な使い方
ファイルで単語を検索すると、「match_pattern」を含むテキスト行が返されます.
grep match_pattern file_name
grep "match_pattern" file_name
        :

grep "match_pattern" file_1 file_2 file_3 ...
          -v   :

grep -v "match_pattern" file_name
       --color=auto   :

grep "match_pattern" file_name --color=auto
        -E   :

grep -E "[1-9]+"
 
egrep "[1-9]+"
             -o   :

echo this is a test line. | grep -o -E "[a-z]+\."
line.

echo this is a test line. | egrep -o "[a-z]+\."
line.
                    -c   :

grep -c "text" file_name
             -n   :

grep "text" -n file_name
 
cat file_name | grep "text" -n

複数のファイル
grep "text"-n file_1 file_2
印刷スタイルは、文字またはバイトのオフセットに一致します.
echo gun is not unix | grep -b -o "not"7:not
1行の文字列の文字の安さは、その行の最初の文字から計算され、開始値は0です.オプション-b-oは一般的によく組み合わせて使用されます.
複数のファイルを検索し、一致するテキストがどのファイルにあるかを検索します.
grep -l "text"file1 file2 file3... grep再帰検索ファイル
マルチレベル・ディレクトリでテキストを再帰的に検索するには、次の手順に従います.
grep "text". -r -n
現在のディレクトリを表します.
一致するスタイルの文字の大文字と小文字を無視:
echo "hello world"| grep -i "HELLO"hello
オプション-eブレーキの複数の一致スタイル:
echo this is a text line | grep -e "is" -e "line" -o
is
line

-fオプションを使用して、複数のスタイルを一致させ、スタイルファイルに一致する文字を行ごとに書くこともできます.
cat patfile
aaa
bbb

echo aaa bbb ccc ddd eee | grep -f patfile -o
 grep               :

ディレクトリ内のすべてのみです.phpと.htmlファイル内の再帰検索文字「main()」
grep "main()". -r --include *.{php,html}
検索結果からすべてのREADMEファイルを除外
grep "main()". -r --exclude "README"
検索結果からfilelistファイルリストからファイルを除外する
grep "main()". -r--exclude-from filelist 0バイト接尾辞のgrepとxargsを使用します.
テストファイル:
echo "aaa" > file1
echo "bbb" > file2
echo "aaa" > file3
grep "aaa" file* -lZ | xargs -0 rm

実行するとfile 1とfile 3が削除され、grep出力は-Zオプションで0値バイトを終端ファイル名(0)として指定され、xargs-0は入力を読み込み、0値バイトの終端でファイル名を区切り、一致ファイルを削除します.-Zは通常-lと組み合わせて使用されます.
grepサイレント出力:
grep -q "test" filename

コマンドの実行に成功して0を返すと、失敗すると0以外の値が返されます.一般的に条件テストに使用されます.
一致するテキストの前または後の行を印刷します.
結果に一致する3行を表示し、-Aオプションを使用します.
seq 10 | grep "5"-A 3


結果に一致する前の3行を表示します.-Bオプションを使用します.
seq 10 | grep "5"-B 3

, -C :

seq 10 | grep "5" -C 3


, “--” :

echo -e "a
b
c
a
b
c" | grep a -A 1

a
b
--
a
b