私は次のコマンドを使用します。
grep "pdp" /3.log
pdp
詳細情報を含む行を検索するために使用されます。しかし、私もfpdp
、spdp
..
選択した関連名のみをフィルタリングするにはどうすればよいですか?
答え1
私はあなたが欲しいと思います:
grep -w pdp /3.log
-w、--word-regexp単語全体を構成する一致を含む行のみを選択します。テストでは、一致する部分文字列が行の先頭にあるか、単語を作成しない文字が前にある必要があります。繰り返しますが、行の末尾にあるか、単語を形成しない文字が後に続く必要があります。単語を構成する文字は、文字、数字、下線です。 -xも指定した場合、このオプションは適用されません。
答え2
JRFergusonが述べたように、grep -w pdpを使用して一致する結果のみを取得するか、findを使用できます。
[root@testvm ~]# ls -lrth
total 4.0K
-rw-------. 1 root root 1.4K Mar 16 13:39 anaconda-ks.cfg
-rw-r--r--. 1 root root 0 May 19 18:11 pdp
-rw-r--r--. 1 root root 0 May 19 18:11 pdpabc
-rw-r--r--. 1 root root 0 May 19 18:11 abcpdp
-rw-r--r--. 1 root root 0 May 19 18:11 3pdp
[root@testvm ~]# find . -regex "\./pdp"
./pdp
その一致を移動または削除したい場合は、findを使用すると便利です。
find . -regex "\./pdp" -exec mv /tmp \;