Saya ingin menerima output dari ls -l
perintah saya :
-rw-r--r-- 1 root root 1866 Feb 14 07:47 rahmu.file
-rw-r--r-- 1 rahmu user 95653 Feb 14 07:47 foo.file
-rw-r--r-- 1 rahmu user 1073822 Feb 14 21:01 bar.file
Saya ingin menjalankan hanya grep rahmu
pada kolom $ 3, sehingga output dari grep
perintah saya akan terlihat seperti ini:
-rw-r--r-- 1 rahmu user 95653 Feb 14 07:47 foo.file
-rw-r--r-- 1 rahmu user 1073822 Feb 14 21:01 bar.file
Apa cara paling sederhana untuk melakukannya? Jawabannya harus portabel di banyak Unices, lebih disukai berfokus pada Linux dan Solaris.
NB: Saya tidak mencari cara untuk menemukan semua file milik pengguna tertentu. Contoh ini hanya diberikan untuk membuat pertanyaan saya lebih jelas.
--printf
opsi untuk stat
berguna di tempat-tempat di mana Anda mungkin mempertimbangkan untuk parsing ls
. Tapi biasanya, find
itulah yang Anda inginkan (seperti yang disebutkan @Gilles).
ls
inheren rapuh (pikirkan apa yang terjadi jika nama pengguna berisi spasi putih - dan ya, ini terjadi pada beberapa platform). Gunakanfind
sebagai gantinya.