Saya telah mencoba mencari sintaks untuk perintah ini:
grep ! error_log | find /home/foo/public_html/ -mmin -60
ATAU:
grep '[^error_log]' | find /home/baumerf/public_html/ -mmin -60
Saya perlu melihat semua file yang telah dimodifikasi kecuali untuk yang bernama error_log
.
Saya sudah baca di sini , tetapi hanya menemukan satu not
pola regex.
Jawaban:
grep -v
adalah temanmu:Lihat juga yang terkait
-L
(pelengkap dari-l
).sumber
-e
pilihan pertandingan (negatif) dapat digunakan:grep -v -e 'negphrase1' -e 'negphrase2'
grep -v 'negphrase1|negphrase2|negphrase3'
-E
karya, yaitugrep -vE 'negphrase1|negphrase2|negphrase3'
grep "" /dev/null * | grep foo | grep -v bar | cut -d: -f1 | sort -u
( mengapa grep pertama?, Selalu ada jalannya :))Anda juga dapat menggunakan
awk
untuk tujuan ini, karena memungkinkan Anda untuk melakukan pemeriksaan yang lebih kompleks dengan cara yang lebih jelas:Baris tidak mengandung
foo
:Baris yang mengandung tidak
foo
jugabar
:Baris yang tidak mengandung
foo
ataubar
yang mengandung salah satufoo2
ataubar2
:Dan seterusnya.
sumber
Dalam kasus Anda, Anda mungkin tidak ingin menggunakan grep, tetapi tambahkan klausa negatif pada perintah find, mis
Jika Anda ingin memasukkan wildcard dalam nama, Anda harus menghindarinya, misalnya untuk mengecualikan file dengan akhiran .log:
sumber