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 > tool
varian 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 cat
dengan pv
jika itu diinstal).
cat
dan pipa ke alat sukaawk
ataused
atau sejenisnya, karena mereka dapat diberi nama file sebagai argumen.