Saya punya contoh file / etc / passwd seperti ini:
tom:x:1000:1000:Work:/home/tom:/bin/bash
george:x:1000:1000:Work:/home/george:/bin/bash
bla:x:1000:1000:Work:/home/bla:/bin/bash
boo:x:1000:1000:Work:/home/boo:/bin/bash
bee:x:1000:1000:Work:/root/list:/bin/bash
Saya mencoba mendaftar semua pengguna dengan folder rumah di /home/.
saya menulis
cat ~/Desktop/e.txt |awk -F ":" '{if ($6 ~/^/home/) print $1;}'
di mana e.txt adalah teks yang saya salin di sini.
Saya mengerti ada masalah dengan backslash yang merupakan karakter pelarian, tetapi bagaimana cara memperbaikinya sehingga saya dapat mendaftarnya dalam satu baris perintah?
grep home e.txt | cut -d ":" -f 1. Selamat atas penghargaan UUOC Anda. Namun, ini bukan solusi yang baik. Bagaimana jika ada layanan "homebackups" yang berjalan di bawah pengguna terpisah yang dinamai daemon? Itu positif palsu.
cat > toolvarian dari baris perintah seperti itu karena dapat meningkatkan kejelasan dengan mempertahankan aliran kiri ke kanan dari input-pemrosesan-output dari rantai pipa. Ini adalah kurang efisien, tapi hampir selalu minimal jadi. Itu juga membuat menambahkan bilah kemajuan di mana relevan & berguna saat menjalankan secara interaktif sangat jelas (hanya ganti catdengan pvjika itu diinstal).
catdan pipa ke alat sukaawkatausedatau sejenisnya, karena mereka dapat diberi nama file sebagai argumen.