Bagaimana saya bisa membuat perintah grep menemukan kata-kata tertentu dalam file yang ditentukan oleh rute yang ditemukan oleh perintah locate?
locate my.cnf | grep user
(Saya ingin perintah grep itu mencari kata "pengguna" pada file yang ditemukan untuk perintah locate)
Jawaban yang Diterima:
Jika hasil pencarian Anda yakin untuk mengembalikan jalur tanpa spasi, Anda dapat menggunakan xargs
seperti ini:
locate my.cnf | xargs grep user
Namun Anda harus membiasakan diri melindungi diri sendiri untuk menangani kasus di mana jalur atau nama file mungkin berisi spasi dengan memberi tahu xargs
untuk menggunakan null
sebagai pemisah dan memberitahu locate
(atau program apa pun yang Anda gunakan untuk mengembalikan string) untuk juga mengirimkannya sebagai pemisah seperti ini:
locate -0 my.cnf | xargs -0 grep user
Ini akan berfungsi bahkan jika jalur Anda menyertakan yang kosong seperti /name with space/my.cnf
.