Di server Solaris kami, saya menemukan itu grep -r
tidak berfungsi, yang merupakan cara yang biasa saya gunakan grep
. Tampaknya egrep
memiliki perilaku yang sama.
Mengingat saya tidak memiliki kendali atas mesin, apakah ada cara untuk grep
melakukan pencarian rekursif? Atau apakah saya perlu menyalurkan output find
ke grep
?
Jawaban:
Saya tidak terbiasa dengan Solaris, tetapi jika Anda beralih dari GNU / linux ke Solaris Anda akan menemukan sebagian besar perintah akan berperilaku sedikit berbeda. Versi GNU dari alat Unix memiliki fitur tambahan yang hilang di Unix "eksklusif".
Anda dapat mengunduh grep GNU di sini kemudian kompilasi dan instal.
Jika Anda memiliki akses root, Anda mungkin ingin menjalankan configure --prefix = / usr / local sehingga utilitas menginstal ke / usr / local
Jika Anda tidak memiliki akses root, Anda mungkin ingin menjalankan configure --prefix = $ {HOME} Sedemikian rupa sehingga utilitas menginstal ke direktori home Anda
sumber
--prefix=${HOME}}/.local
mungkin lebih disarankan ... tidak perlu mengacaukan direktori homeshare
danlib
foldershare
Itu harus menjadi direktori sampah!"rm -rf
Doh!Jika Anda ingin menggunakan
find
, ini akan menjadi cara tercepat:Namun, Gnu grep kemungkinan besar sudah terpasang di mesin Anda.
Ini adalah bagian dari instalasi default pada Solaris 11 in
/usr/gnu/bin/grep
. Sama untuk Solaris 10 tempat Anda menemukannya/usr/sfw/bin/ggrep
. Pada rilis yang lebih lama, mungkin telah diinstal dari sunfreeware atau repositori lainnya, periksa/usr/local/bin/grep
dan/opt/csw/bin/grep
untuk lokasi umum.sumber
-name
opsi inifind
.-name
tidak akan mencari di dalam file tetapi hanya mencari nama file yang bukan apa yang diminta OP.Gunakan ggrep sebagai gantinya jika sudah diinstal.
Misalnya, Cari "pencarian saya" dari direktori saat ini ke semua subdirektori (
-R
), dan perlihatkan nama file dan jalur untuk kecocokan (-H
) dan abaikan file biner (-I
). Jangan lupa*
pada akhir perintah.ggrep terletak di
/usr/sfw/bin
Anda dapat menambahkannya ke profil Anda dengan perintah EKSPOR sehingga Anda dapat memanggilnya dari baris perintah secara langsung.Versi Solaris: SunOS 5.10 Generic_147440-13 sun4u sparc SUNW, SPARC-Enterprise
sumber
ggrep
memang grep GNU. Terima kasih!Unduh
ack
skrip perl mandiri dari http://betterthangrep.com/ , masukkan ke dalam Anda$HOME/bin
, dan belajarlah untuk menggunakannya. Saya menemukan ini, seperti yang diiklankan, lebih baik daripada grep untuk banyak kegunaan dalam pekerjaan pengembangan harian saya.sumber
Solaris grep tidak memiliki
-r
opsi.Anda dapat menggunakan perintah berikut.
sumber
find /opt/ -name "*.sh" -type f | xargs grep "start"
Ya, Anda membutuhkan grep GNU. Secara pribadi saya tidak ketinggalan bendera "-r" karena Anda dapat melakukan hal yang sama dengan kombinasi
find
dan,grep
tetapi ini mengingatkan bahwa memiliki alat GNU yang tersedia di kotak Solaris Anda adalah apa yang saya anggap praktik terbaik. Jadi di sini kita mulai:Saya tidak akan mengunduh kode sumber dari berbagai tempat di Internet dan kemudian membangun diri Anda sendiri. Itu tidak perlu. Jika Anda hanya ingin Solaris Anda memiliki alat-alat GNU khas yang tersedia maka lakukan sebagai berikut:
Jika Anda menggunakan Solaris 10, Anda harus mendapatkan Solaris 10 Companion Disk. Ini dulunya didistribusikan oleh Sun tetapi sekarang tinggal di sini . Secara pribadi saya akan selalu terbiasa menginstal isi disk ini atau setidaknya bagian-bagian GNU yang paling penting. Jadikan itu bagian dari JumpStart Anda (atau apa pun yang Anda gunakan) untuk server baru di organisasi Anda!
Jika Anda menggunakan Solaris 11, hidup jauh lebih sederhana. Alat-alat GNU biasanya diinstal secara default tetapi tidak semuanya disebarkan ke zona lokal. IFS, sistem pengemasan pada Solaris 11, membuat hidup Anda jauh lebih mudah sehingga Anda benar-benar harus pindah ke Solaris 11 (banyak alasan lain juga). Daftar paket yang harus Anda pertimbangkan selalu tersedia untuk zona apa pun adalah sebagai berikut:
dan jika Anda menggunakan host untuk tujuan pengembangan / pembangunan, Anda mungkin ingin menambahkan:
Secara pribadi saya akan membuat bagian di atas (berpotensi lebih sedikit alat dev) instalasi default perusahaan saya untuk server / zona baru. Sysadmin Solaris sering bersikeras berbeda dari dunia Linux tetapi sebenarnya tidak perlu. Lakukan saja dan jadikan itu bagian dari pemasangan default Anda. Anda tidak akan menyesalinya.
sumber