GNU/Linux >> Belajar Linux >  >> Linux

Cara mencari kata di seluruh isi direktori di linux

xargs mengharapkan input dalam format yang tidak dihasilkan oleh perintah lain, sehingga sulit untuk digunakan secara efektif. Apa yang salah di sini adalah Anda memiliki file yang namanya harus dikutip pada input ke xargs (mungkin berisi ' ).

Jika grep Anda mendukung -r atau -R opsi untuk pencarian rekursif, gunakan itu.

grep -r word .

Jika tidak, gunakan -exec primer dari find . Ini adalah cara biasa untuk mendapatkan efek yang sama seperti xargs , kecuali tanpa batasan pada nama file. Versi find yang cukup baru memungkinkan Anda mengelompokkan beberapa file dalam satu panggilan ke perintah tambahan. Meneruskan /dev/null ke grep memastikan bahwa itu akan menampilkan nama file di depan setiap kecocokan, meskipun kebetulan dipanggil pada satu file.

find . -type f -exec grep word /dev/null {} +

Versi find yang lebih lama (pada sistem lama atau OpenBSD, atau utilitas yang dikurangi seperti BusyBox) hanya dapat memanggil perintah tambahan pada satu file dalam satu waktu.

find . -type f -exec grep word /dev/null {} \;

Beberapa versi find dan xargs memiliki ekstensi yang memungkinkan mereka berkomunikasi dengan benar, menggunakan karakter nol untuk memisahkan nama file sehingga tidak diperlukan kutipan. Saat ini, hanya OpenBSD yang memiliki fitur ini tanpa memiliki -exec … {} + .

find . -type f -print0 | xargs -0 grep word /dev/null

Saya kira maksud Anda opsi pertama

grep rekursif, untuk mencari konten di dalam file

grep -R "content_to_search" /path/to/directory

ls rekursif, untuk mencari file yang cocok

ls -lR | grep "your_search"

Jika Anda memiliki alat GNU (yang Anda lakukan jika tag Linux akurat) maka Anda dapat menggunakan -print0 dan -0 untuk mengatasi masalah kutipan biasa:

find . -type f -print0 | xargs -0 grep word

Linux
  1. Cara Membuat Direktori Bersama untuk Semua Pengguna di Linux

  2. Cara Mencari dan Menghapus Direktori Secara Rekursif di Linux

  3. Cara menemukan File di Linux

  1. Linux – Bagaimana Cara Mendapatkan Kata Tertentu Dan Mengambil Teks?

  2. Cara Menemukan Teks Tertentu menggunakan GREP di Linux

  3. Cara mencari file menggunakan regex di skrip shell linux

  1. Cara Menggunakan Perintah 'find' untuk Mencari Beberapa Nama File (Ekstensi) di Linux

  2. Bagaimana saya bisa menjalankan dos2unix di seluruh direktori?

  3. Linux mencari kata dan menampilkan seluruh baris