Apakah ada tutorial dasar untuk grep, awk dan sed? [Tutup]

95

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, awkdan sed.

Tentang satu-satunya hal yang saya gunakan grep adalah mem-pipkan barang ke dalamnya untuk menemukan file dalam file log, output psdll. Saya belum pernah menggunakan awkatau sedsama sekali. Apakah ada tutorial yang bagus untuk utilitas ini?

Macha
sumber
2
Anda betcha! :)
gvkv
Saya selalu menunda belajar regex karena saya mengatakan pada diri sendiri bahwa suatu hari saya akan mempelajarinya dengan membaca makalah asli Kleene tentang logika yang menemukan konsep sebelum itu menjadi banyak digunakan di komputer.
ixtmixilix
Saya setuju dengan gvkv: jika Anda perlu belajar ini, Anda mungkin juga belajar Perl, itu melakukan apa grep, seddan awkmelakukan (dan dengan cara yang hampir sama) dan banyak lagi di atas.
reinierpost
Saya selalu suka thegeekstuff.com. Mereka memotong langsung ke contoh, sebagai lawan dari manhalaman biasa yang terasa seperti 90% catatan kaki.
isomorfisma

Jawaban:

19

Buku O'Reilly sed and awk sangat bagus untuk er sed and awk.


sumber
11

Saya menulis buku tentang sed- Definitive Guide to sed — yang mencakup tutorial. Sepenuhnya mencakup sed, serta perintah terkait seperti grep, tr, headdan tail. 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 sedyang terbaik digunakan untuk tugas-tugas sederhana, skrip yang lebih kompleks dengan cepat menjadi kabur.

Saya tidak setuju itu awksudah usang, justru sebaliknya. Ini seperti banyak hal unix (misalnya, vi), ada kurva belajar, tetapi itu sepadan.

Saya tidak setuju dengan saran untuk digunakan awksebagai pengganti grep. Tidak masuk akal dalam pengalaman saya. grepsangat bagus dan sederhana.

Daniel Goldman
sumber
Saya yang kedua grep- Anda tidak mengambil traktor di jalan bebas hambatan jika Anda bisa membantu. Dan itu buku yang sangat bagus juga - terima kasih.
mikeserv
3

Cookbook Ekspresi Reguler yang diterbitkan oleh O'Rielly akan cukup untuk membawa Anda ke mana saja dalam bahasa apa pun yang menggunakannya.

ixtmixilix
sumber
3

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".

HandyGandy
sumber
2

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.

pengguna1606
sumber
oh, btw, kami bahkan tidak perlu awk, Anda bisa menggunakan g++ -x c++ - -o /tmp/prog && /tmp/progdan mengetik perintah Anda saja. Satu alat untuk mengatur semuanya! :-)
Lie Ryan
1
siapa yang butuh kompiler ketika Anda bisa langsung menulis biner ke dalam file? kucing akan melakukannya, atau ed jika Anda merasa malas.
cas
1

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.

fschmitt
sumber
10
awk masih sangat berguna untuk memanipulasi data yang disalurkan dari perintah lain. Untuk penggunaan baris perintah yang sederhana, saya tidak akan menganggapnya sudah usang.
MaQleod
Juga harus tersedia pada banyak sistem karena POSIX.
echox
1
Kebanyakan 'lanjutan AWK' mungkin lebih baik dilakukan dengan perl atau python atau apa pun, tetapi hal-hal sederhana baik dilakukan hanya dengan awk.
user455
1
Awk masih berguna untuk mengetahui untuk memahami berbagai jawaban yang mungkin Anda temukan online ketika mencoba menyelesaikan masalah. Anda akan sering menemukan contoh online yang menggunakan pernyataan awk seperti awk '{print $3}'.
Steven D
1
Di tempat kerja, dan di rumah, saya menggunakan awk lebih sering daripada sed. Tidak ada yang bisa mengalahkan awk pada data tabel tetap, seperti dpkg -loutput. 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.
JM Becker