


Cara mencari fail yang mengandungi teks tertentu menggunakan grep dan ripgrep di linux
Mar 17, 2025 am 09:07 AM Perintah grep
dan ripgrep
dalam sistem Linux adalah alat carian mod teks yang kuat yang menyediakan pelbagai pilihan untuk menyempurnakan carian dan meningkatkan kecekapan. Panduan ini akan terperinci bagaimana menggunakan kedua -dua arahan ini untuk mencari fail yang mengandungi rentetan teks tertentu dalam kandungan fail.
Jadual Kandungan
- Penggunaan asas
- Mengandungi jenis fail tertentu
- Tidak termasuk jenis fail tertentu
- Tidak termasuk direktori tertentu
- Tunjukkan hanya nama fail
- Perlawanan terbalik
- Statistik perlawanan
- Contoh
- Cari mod teks dalam fail linux menggunakan
ripgrep
- Penggunaan asas
- Parameter biasa
- Contoh
- Penggunaan asas
- Soalan Lazim: Gunakan
grep
danripgrep
untuk mencari teks dalam fail- Bagaimana cara menggunakan
grep
untuk mencari semua fail yang kandungannya mengandungi rentetan teks tertentu?
- Bagaimana cara menggunakan
- Bagaimana untuk memasukkan atau mengecualikan jenis fail tertentu dalam carian
grep
saya?
- Bagaimana untuk memasukkan atau mengecualikan jenis fail tertentu dalam carian
- Bagaimana cara mengecualikan direktori tertentu dari carian
grep
saya?
- Bagaimana cara mengecualikan direktori tertentu dari carian
- Bagaimana untuk memaparkan hanya nama fail yang mengandungi rentetan tertentu?
- Apa itu
ripgrep
dan mengapa saya harus menggunakannya?
- Apa itu
- Bagaimana untuk melakukan carian asas menggunakan
ripgrep
?
- Bagaimana untuk melakukan carian asas menggunakan
- Apakah parameter
ripgrep
yang biasa digunakan?
- Apakah parameter
- Bolehkah anda memberikan contoh
ripgrep
menggunakan pilihan yang berbeza?
- Bolehkah anda memberikan contoh
- Meringkaskan
Gunakan grep
untuk mencari fail yang mengandungi rentetan teks tertentu
grep
(Global Regular Expression Print) adalah utiliti baris arahan yang mencari corak dalam fail dan cetakan garis yang sepadan. Ia adalah alat pemprosesan teks yang kuat yang digunakan secara meluas dalam sistem operasi seperti Unix, termasuk Linux.
grep
menyokong ekspresi biasa, yang membolehkannya melakukan fleksibel melakukan pencocokan corak yang kompleks. Untuk maklumat lanjut mengenai penggunaan arahan grep
, lihat panduan berikut:
- Tutorial dan Contoh Perintah
grep
(pemula)
Sekarang mari kita bincangkan cara menggunakan perintah grep
untuk mencari fail yang mengandungi perkataan atau frasa tertentu di Linux.
1. Penggunaan Asas
Untuk mencari rekursif untuk corak teks tertentu (termasuk pautan simbolik) dan paparkan nombor baris yang sesuai dengan corak, gunakan arahan berikut:
<code>grep -Rnw '/path/to/directory/' -e 'pattern'</code>
-
-R
: Melakukan carian rekursif, termasuk pautan simbolik. -
-n
: Tunjukkan nombor baris yang sepadan. -
-w
: Padankan keseluruhan perkataan sahaja. -
-e
: Tentukan corak untuk mencari.
Ganti /path/to/directory/
dengan direktori yang anda cari dan 'pattern'
dengan corak teks yang anda cari.
2. Sertakan jenis fail tertentu
Untuk mencari fail dengan sambungan tertentu, seperti fail .txt
dan .md
, gunakan pilihan --include
:
<code>grep --include=\*.{txt,md} -Rnw '/path/to/directory/' -e 'pattern'</code>
3. Tidak termasuk jenis fail tertentu
Untuk mengecualikan fail dengan sambungan tertentu, seperti fail .bak
dan .tmp
, gunakan pilihan --exclude
:
<code>grep --exclude=\*.{bak,tmp} -Rnw '/path/to/directory/' -e 'pattern'</code>
4. Tidak termasuk direktori tertentu
Untuk mengecualikan direktori tertentu dari carian, seperti node_modules
, .git
, dan direktori bermula dengan temp_
, gunakan pilihan --exclude-dir
:
<code>grep --exclude-dir={node_modules,.git,temp_*} -Rnw '/path/to/directory/' -e 'pattern'</code>
5. Hanya memaparkan nama fail
Untuk memaparkan hanya nama fail yang mengandungi corak (disusun abjad), gunakan pilihan -l
dan gabungkan dengan sort
:
<code>grep -Rlnw '/path/to/directory/' -e 'pattern' | sort</code>
6. Perlawanan terbalik
Untuk memaparkan baris yang tidak sepadan dengan corak, gunakan pilihan -v
:
<code>grep -Rnwv '/path/to/directory/' -e 'pattern'</code>
7. Statistik Bilangan Perlawanan
Untuk memaparkan bilangan baris yang sepadan untuk setiap fail, gunakan pilihan -c
:
<code>grep -Rnwc '/path/to/directory/' -e 'pattern'</code>
Contoh-contoh ini menunjukkan pilihan lanjutan lain untuk carian teks penalaan yang baik menggunakan grep
pada Linux.
Contoh
Beberapa arahan berikut harus dijalankan dengan kebenaran sudo
atau akar.
1. Cari rentetan "kata laluan" rentetan dalam semua fail dalam direktori semasa:
<code>grep -Rnw '.' -e 'password'</code>
2. Cari "Pengguna" dalam direktori /etc
secara tidak sensitif:
<code>grep -Rinw '/etc' -e 'user'</code>
3. Cari perkataan "Utama" dalam direktori /home/user/projects
:
<code>grep -Rnw '/home/user/projects' -e 'main'</code>
4. Cari "Todo" dalam semua .py
fail dalam direktori semasa:
<code>grep --include=\*.py -Rnw '.' -e 'TODO'</code>
5. Cari "sulit" dalam direktori /var/logs
, dan tidak termasuk fail .log
:
<code>grep --exclude=\*.log -Rnw '/var/logs' -e 'confidential'</code>
6. Cari "ralat" dalam direktori /var/log
dan paparkan hanya nama fail:
<code>grep -Rlnw '/var/log' -e 'error'</code>
7. Cari "gagal" dalam fail termampat (contohnya backup.zip
):
<code>zgrep -i 'fail' backup.zip</code>
8. Statistik Bilangan baris yang mengandungi perkataan "ralat" dalam direktori /var/log
:
<code>grep -Rnwc '/var/log' -e 'error'</code>
Perintah dan pilihan ini harus meliputi kebanyakan keperluan carian teks dalam persekitaran Linux.
Cari mod teks dalam fail linux menggunakan ripgrep
ripgrep
( rg
) adalah alternatif moden kepada grep
, yang direka untuk menjadi lebih cepat dan lebih mesra pengguna, terutamanya ketika mencari pangkalan kod besar atau fail besar.
Ia ditulis dalam karat dan menggunakan teknologi yang cekap seperti pengoptimuman teks automaton, SIMD dan agresif yang terhad, menjadikannya lebih cepat daripada alat carian lain.
ripgrep
juga menyediakan output yang lebih intuitif dan berwarna -warni secara lalai, dan ia mempunyai set pilihan yang kaya untuk menyesuaikan tingkah laku carian.
Penggunaan asas
Untuk mencari rentetan "fungsi" dalam direktori semasa:
<code>rg "search_string" .</code>
Parameter biasa
-
-i
: Melakukan carian kes-insensitif. -
-I
: Abaikan fail binari. -
-w
: Cari hanya seluruh perkataan. -
-n
: Tunjukkan nombor baris yang sepadan. -
-C
或--context
:顯示匹配行周圍的上下文(例如,-C3
顯示匹配項(xiàng)之前和之后3行)。 -
--color=auto
: Sorot teks yang sepadan. -
-H
: Menunjukkan nama fail teks yang dijumpai. -
-c
: Menunjukkan kiraan baris yang sepadan (boleh digabungkan dengan-H
).
Contoh
1. Cari "ralat" dalam /var/log/
direktori secara tidak sensitif:
<code>rg -i "error" /var/log/</code>
2. Cari keseluruhan perkataan "pangkalan data" dalam direktori /home/user/config
:
<code>rg -w "database" /home/user/config</code>
3. Paparkan nombor garis dan konteks sekitar rentetan "Inisialisasi" dalam direktori semasa (sebelum dan selepas 3 baris):
<code>rg -n -C3 "initialize" .</code>
4. Cari rentetan "Diluluskan" dalam semua fail dalam direktori /var/www/html
, abaikan fail binari dan sorot perlawanan:
<code>rg -I --color=auto "deprecated" /var/www/html</code>
5. Paparkan bilangan baris yang sepadan dengan nama fail dan "berjaya" dalam direktori /opt/data
:
<code>rg -H -c "successful" /opt/data</code>
6. Cari "user_id", sambil mengabaikan fail binari dan memaparkan nama fail dalam direktori /etc
:
<code>rg -I -H "user_id" /etc</code>
7. Cari rentetan "sambungan" dan paparkan nama fail dan nombor talian di direktori /home/user/logs
:
<code>rg -H -n "connection" /home/user/logs</code>
Contoh -contoh ini menunjukkan kepelbagaian dan kuasa ripgrep
dalam pelbagai senario carian, terutama dalam projek besar dan fail besar.
Soalan Lazim: Gunakan grep
dan ripgrep
untuk mencari teks dalam fail
1. Bagaimana menggunakan grep
untuk mencari semua fail yang kandungannya mengandungi rentetan teks tertentu?
Untuk mencari rentetan tertentu dalam semua fail dalam direktori dan subdirektori, gunakan arahan berikut:
<code>grep -Rnw '/path/to/dir/' -e 'pattern'</code>
-
-R
: Melakukan carian rekursif, termasuk pautan simbolik. -
-n
: Tunjukkan nombor baris yang sepadan. -
-w
: Padankan keseluruhan perkataan sahaja. -
-e
: Tentukan corak untuk mencari.
2. Bagaimana untuk memasukkan atau mengecualikan jenis fail tertentu dalam carian grep
saya?
Untuk memasukkan jenis fail tertentu:
<code>grep --include=\*.{sh,py} -Rnw '/path/to/dir/' -e 'pattern'</code>
Untuk mengecualikan jenis fail tertentu:
<code>grep --exclude=\*.tmp -Rnw '/path/to/dir/' -e 'pattern'</code>
3. Bagaimana untuk mengecualikan direktori tertentu dari carian grep
saya?
Untuk mengecualikan direktori tertentu:
<code>grep --exclude-dir={node_modules,dist,logs} -Rnw '/path/to/dir/' -e 'pattern'</code>
4. Bagaimana untuk memaparkan hanya nama fail yang mengandungi rentetan tertentu?
Gunakan pilihan -l
untuk memaparkan hanya nama fail yang sepadan:
<code>grep -Rlnw '/path/to/documents/' -e 'confidential'</code>
5. Apa itu ripgrep
dan mengapa saya harus menggunakannya?
ripgrep
( rg
) adalah alternatif yang lebih cepat dan lebih cekap untuk grep
, terutamanya dalam projek besar dan fail besar. Ia berdasarkan enjin ekspresi biasa Rust, yang menggunakan pengoptimuman teks yang terhad, SIMD dan agresif untuk meningkatkan kelajuan carian.
6. Bagaimana untuk melakukan carian asas menggunakan ripgrep
?
Untuk mencari rentetan dalam semua fail dalam direktori semasa, gunakan:
<code>rg "pattern" .</code>
7. Apakah parameter ripgrep
yang biasa digunakan?
-
-i
: Melakukan carian kes-insensitif. -
-I
: Abaikan fail binari. -
-w
: Cari hanya seluruh perkataan. -
-n
: Tunjukkan nombor baris yang sepadan. -
-C
atau--context
: menunjukkan konteks di sekitar baris yang sepadan (contohnya,-C3
menunjukkan 3 baris sebelum dan selepas perlawanan). -
--color=auto
: Sorot teks yang sepadan. -
-H
: Menunjukkan nama fail teks yang dijumpai. -
-c
: Menunjukkan kiraan baris yang sepadan (boleh digabungkan dengan-H
).
8. Bolehkah anda memberikan contoh ripgrep
menggunakan pilihan yang berbeza?
- Cari "Sesi" dalam direktori
/var/logs
secara tidak sensitif:
<code>rg -i "session" /var/logs</code>
- Cari keseluruhan perkataan "config" dalam direktori
/etc
:
<code>rg -w "config" /etc</code>
- Tunjukkan nombor garis dan konteks sekitar rentetan "Inisialisasi" dalam direktori
/src
(sebelum dan selepas 4 baris):
<code>rg -n -C4 "initialize" /src</code>
- Cari rentetan "Dihapus" dalam semua fail dalam direktori
/usr/share
, abaikan binari dan sorot perlawanan:
<code>rg -I --color=auto "deprecated" /usr/share</code>
- Paparkan bilangan baris yang sepadan dengan nama fail dan "kejayaan" dalam direktori
/opt/logs
:
<code>rg -H -c "success" /opt/logs</code>
- Cari "nama pengguna", sambil mengabaikan fail binari dan memaparkan nama fail di direktori
/home/user/settings
:
<code>rg -I -H "username" /home/user/settings</code>
- Cari rentetan "import" dan paparkan nama fail dan nombor baris dalam direktori
/projects
:
<code>rg -H -n "import" /projects</code>
Meringkaskan
Dalam tutorial ini, kami membincangkan cara menggunakan arahan grep
dan ripgrep
untuk mencari fail yang mengandungi rentetan teks tertentu.
Walaupun grep
adalah alat yang komprehensif dan serba boleh, ripgrep
( rg
) menyediakan prestasi yang lebih baik dan pengalaman pengguna yang lebih moden, menjadikannya pilihan yang popular untuk carian teks, terutamanya dalam projek besar atau ketika bekerja dengan fail besar.
Bacaan Berkaitan :
- Cara mencari dan memadam fail dengan teks tertentu dalam nama fail di linux
Atas ialah kandungan terperinci Cara mencari fail yang mengandungi teks tertentu menggunakan grep dan ripgrep di linux. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Apabila menghadapi masalah DNS, mula -mula semak fail /etc/resolv.conf untuk melihat sama ada nameserver yang betul dikonfigurasi; Kedua, anda boleh menambah DNS awam secara manual seperti 8.8.8.8 untuk ujian; Kemudian gunakan arahan NSLOOKUP dan Dig untuk mengesahkan sama ada resolusi DNS adalah normal. Sekiranya alat ini tidak dipasang, anda boleh memasang pakej DNSutils atau Bind-UTILS terlebih dahulu; Kemudian periksa status perkhidmatan yang diselesaikan SystemD dan fail konfigurasi /etc/systemd/resolved.conf, dan tetapkan DNS dan fallbackDNS seperti yang diperlukan dan mulakan semula perkhidmatan; Akhirnya periksa status antara muka rangkaian dan peraturan firewall, sahkan bahawa port 53 tidak

Sebagai pentadbir sistem, anda mungkin mendapati diri anda (hari ini atau pada masa akan datang) bekerja di persekitaran di mana Windows dan Linux wujud bersama. Bukan rahsia lagi bahawa beberapa syarikat besar lebih suka (atau harus) menjalankan beberapa perkhidmatan pengeluaran mereka di Windows Boxes

Dibina pada enjin V8 Chrome, Node.js adalah persekitaran runtime JavaScript yang didorong oleh acara terbuka yang dibuat untuk membina aplikasi berskala dan API backend. Nodejs dikenali sebagai ringan dan cekap kerana model I/O yang tidak menyekat dan

Dalam sistem Linux, 1. Gunakan arahan IPA atau HostName-I untuk melihat IP peribadi; 2. Gunakan curlifconfig.me atau curlipinfo.io/ip untuk mendapatkan ip awam; 3. Versi desktop boleh melihat IP peribadi melalui tetapan sistem, dan penyemak imbas boleh mengakses laman web tertentu untuk melihat IP awam; 4. Perintah umum boleh ditetapkan sebagai alias untuk panggilan cepat. Kaedah ini mudah dan praktikal, sesuai untuk keperluan tontonan IP dalam senario yang berbeza.

LinuxcanrunonmodesthardwareWithSpecificMinimumRequirements.a1ghzprocessor (x86orx86_64) disediakan, withadual-corecpurecommended.r Amshouldbeatleast512mbforcommand-lineuseor2gbfordesktopenvironments.diskspacerequiresaminimumof5-10gb, walaupun25gbisbetterforad

Ditulis dalam C, MySQL adalah sumber terbuka, silang platform, dan salah satu sistem pengurusan pangkalan data relasi yang paling banyak digunakan (RDMS). Ini adalah bahagian penting dalam timbunan lampu dan merupakan sistem pengurusan pangkalan data yang popular dalam hosting web, analisis data,

Ubuntu telah lama berdiri sebagai benteng aksesibiliti, menggilap, dan kuasa dalam ekosistem Linux. Dengan ketibaan Ubuntu 25.04, yang dinamakan "Puffin Plucky", kanonik sekali lagi menunjukkan komitmennya untuk menyampaikan

MongoDB adalah pangkalan data NoSQL yang berorientasikan dokumen yang sangat berskala tinggi yang dibina untuk menguruskan trafik yang berat dan sejumlah besar data. Tidak seperti pangkalan data SQL tradisional yang menyimpan data dalam baris dan lajur dalam jadual, data struktur MongoDB dalam j
