Saya sudah menjadi pengguna Linux untuk sementara waktu, dan saya sudah cukup memahami sebagian besar utilitas baris perintah umum. Namun, orang-orang yang datang dan lagi dalam kaitannya dengan pemrograman grep
, awk
dan sed
.
Tentang satu-satunya hal yang saya gunakan grep adalah mem-pipkan barang ke dalamnya untuk menemukan file dalam file log, output ps
dll. Saya belum pernah menggunakan awk
atau sed
sama sekali. Apakah ada tutorial yang bagus untuk utilitas ini?
grep
,sed
danawk
melakukan (dan dengan cara yang hampir sama) dan banyak lagi di atas.man
halaman biasa yang terasa seperti 90% catatan kaki.Jawaban:
AWK sangat cocok untuk data tabel dan memiliki kurva belajar yang lebih rendah daripada beberapa alternatif.
AWK: Tutorial dan Pendahuluan
AWK Primer ( tautan alt )
InfoExpressions.info
tutorial sed
tutorial grep
info sed
,info grep
daninfo awk
atauinfo gawk
sumber
Buku O'Reilly sed and awk sangat bagus untuk er sed and awk.
sumber
Saya menulis buku tentang
sed
- Definitive Guide to sed — yang mencakup tutorial. Sepenuhnya mencakupsed
, serta perintah terkait sepertigrep
,tr
,head
dantail
. Juga sepenuhnya mencakup ekspresi reguler jauh lebih baik daripada yang pernah saya lihat di tempat lain.Saya setuju dengan yang lain bahwa memahami ekspresi reguler dengan baik sangat penting. Saya juga setuju bahwa
sed
yang terbaik digunakan untuk tugas-tugas sederhana, skrip yang lebih kompleks dengan cepat menjadi kabur.Saya tidak setuju itu
awk
sudah usang, justru sebaliknya. Ini seperti banyak hal unix (misalnya,vi
), ada kurva belajar, tetapi itu sepadan.Saya tidak setuju dengan saran untuk digunakan
awk
sebagai penggantigrep
. Tidak masuk akal dalam pengalaman saya.grep
sangat bagus dan sederhana.sumber
grep
- Anda tidak mengambil traktor di jalan bebas hambatan jika Anda bisa membantu. Dan itu buku yang sangat bagus juga - terima kasih.Cookbook Ekspresi Reguler yang diterbitkan oleh O'Rielly akan cukup untuk membawa Anda ke mana saja dalam bahasa apa pun yang menggunakannya.
sumber
Penulis buku ini adalah Kernigan dan Pike judulnya adalah sesuatu seperti "Lingkungan Pemrograman Unix".
Buku yang saya pelajari sebenarnya disebut "An Introduction to Berkely Unix".
sumber
Jika Anda ingin belajar satu dari 3 ini (grep, sed dan awk), Anda bisa belajar awk / gawk. . awk dapat melakukan fungsi grep dan sed, yaitu menggunakan regex untuk mencari / mengganti teks, ditambah lebih banyak lagi karena itu juga merupakan bahasa pemrograman. Jika Anda mempelajari bagian dalam gawk / awk, Anda tidak perlu menggunakan grep / sed / wc / cut dll. Hanya satu alat yang melakukannya.
sumber
g++ -x c++ - -o /tmp/prog && /tmp/prog
dan mengetik perintah Anda saja. Satu alat untuk mengatur semuanya! :-)Menurut pendapat saya, awk kurang lebih sudah usang (namun, orang lain akan sangat memperdebatkan pendapat ini), kebanyakan orang yang saya kenal saat ini bukannya menggunakan beberapa bahasa skrip seperti perl atau hari ini sering python untuk manipulasi teks tingkat lanjut. sed bagus untuk tugas manipulasi teks yang lebih sederhana, saya menggunakannya sepanjang waktu. Saya mempelajarinya terutama dengan melihat sed-liners seperti yang ada di http://sed.sourceforge.net/sed1line.txt . Mengenai grep: Ya, pada dasarnya Anda ingin mendapatkan pemahaman yang kuat tentang ekspresi reguler (juga diperlukan untuk sed). Saya di sini hanya menggunakan manual texinfo.
sumber
awk '{print $3}'
.dpkg -l
output. Saya tidak akan melakukan apa pun yang rumit di dalamnya, tapi saya akan menjadi alat pendek tanpa awk. Saya tidak bisa mengatakan hal yang sama untuk bahasa pemrograman yang lebih umum, sebanyak saya suka beberapa dari mereka.