InggrisPerancisSpanyol

Ad


favorit OnWorks

melongo - Online di Cloud

Jalankan gawk di penyedia hosting gratis OnWorks melalui Ubuntu Online, Fedora Online, emulator online Windows, atau emulator online MAC OS

Ini adalah command gawk yang dapat dijalankan di penyedia hosting gratis OnWorks menggunakan salah satu dari beberapa workstation online gratis kami seperti Ubuntu Online, Fedora Online, emulator online Windows atau emulator online MAC OS

PROGRAM:

NAMA


melongo - pemindaian pola dan bahasa pemrosesan

RINGKASAN


melongo [Opsi gaya POSIX atau GNU] -f berkas program [ -- ] berkas...
melongo [ Opsi gaya POSIX atau GNU ] [ -- ] program-teks berkas...

DESKRIPSI


Melongo adalah implementasi Proyek GNU dari bahasa pemrograman AWK. Ini sesuai dengan
definisi bahasa dalam Standar POSIX 1003.1. Versi ini pada gilirannya adalah
berdasarkan deskripsi di Grafik AWK Pemrograman Bahasa, oleh Aho, Kernighan, and
Weinberger. Melongo menyediakan fitur tambahan yang ditemukan di versi Brian saat ini
Kernighan's Wow dan sejumlah ekstensi khusus GNU.

Baris perintah terdiri dari opsi untuk melongo itu sendiri, teks program AWK (jika tidak disertakan
melalui -f or --mengajukan pilihan), dan nilai-nilai yang akan tersedia di ARGC dan ARGV pra-
variabel AWK yang ditentukan.

Ketika melongo dipanggil dengan --Profil opsi, itu mulai mengumpulkan statistik profil
dari eksekusi program. Melongo berjalan lebih lambat dalam mode ini, dan secara otomatis
menghasilkan profil eksekusi dalam file awkprof.keluar ketika selesai. Lihat --Profil
pilihan, di bawah.

Melongo juga memiliki debugger terintegrasi. Sesi debugging interaktif dapat dimulai dengan
memasok --debug pilihan ke baris perintah. Dalam mode eksekusi ini, melongo beban
kode sumber AWK dan kemudian meminta perintah debug. Melongo hanya dapat men-debug AWK
sumber program disediakan dengan -f pilihan. Debugger didokumentasikan dalam MELONGO: Efektif
AWK Pemrograman.

PILIHAN FORMAT


Melongo opsi dapat berupa opsi satu huruf gaya POSIX tradisional, atau panjang gaya GNU
pilihan. Opsi POSIX dimulai dengan satu "-", sedangkan opsi panjang dimulai dengan "--". Panjang
opsi disediakan untuk fitur spesifik GNU dan fitur mandat POSIX.

Melongo-opsi spesifik biasanya digunakan dalam bentuk opsi panjang. Argumen untuk opsi panjang
baik bergabung dengan opsi oleh = tanda, tanpa spasi, atau mereka mungkin
disediakan dalam argumen baris perintah berikutnya. Opsi panjang dapat disingkat, asalkan
singkatannya tetap unik.

Selain itu, setiap opsi panjang memiliki opsi pendek yang sesuai, sehingga opsi tersebut
fungsionalitas dapat digunakan dari dalam #! skrip yang dapat dieksekusi.

PILIHAN


Melongo menerima opsi berikut. Opsi standar dicantumkan terlebih dahulu, diikuti oleh
opsi untuk melongo ekstensi, terdaftar menurut abjad dengan opsi pendek.

-f berkas program
--mengajukan berkas program
Baca sumber program AWK dari file berkas program, bukannya dari yang pertama
argumen baris perintah. Beberapa -f (Atau --mengajukan) opsi dapat digunakan.

-F fs
--pemisah-bidang fs
penggunaan fs untuk pemisah bidang input (nilai FS variabel yang telah ditentukan sebelumnya).

-v adalah=val
--menetapkan adalah=val
Tetapkan nilainya val ke variabel adalah, sebelum eksekusi program dimulai.
Nilai variabel tersebut tersedia untuk MULAI aturan program AWK.

-b
--karakter-sebagai-byte
Perlakukan semua data input sebagai karakter byte tunggal. Dengan kata lain, tidak membayar apapun
perhatikan informasi lokal saat mencoba memproses string sebagai multibyte
karakter. Itu --posix opsi menimpa yang ini.

-c
--tradisional
Lari masuk kesesuaian mode. Dalam mode kompatibilitas, melongo berperilaku identik dengan
Brian Kernighan's Wow; tidak ada ekstensi khusus GNU yang dikenali. Lihat GNU
EKSTENSI, di bawah, untuk informasi lebih lanjut.

-C
--hak cipta
Cetak versi pendek dari pesan informasi hak cipta GNU pada standar
keluar dan keluar dengan sukses.

-d[fillet]
--dump-variabel[=fillet]
Cetak daftar variabel global yang diurutkan, jenisnya, dan nilai akhirnya ke fillet. Jika
tidak fillet disediakan, melongo menggunakan file bernama awkvars.out di direktori saat ini.
Memiliki daftar semua variabel global adalah cara yang baik untuk mencari tipografi
kesalahan dalam program Anda. Anda juga akan menggunakan opsi ini jika Anda memiliki besar
program dengan banyak fungsi, dan Anda ingin memastikan bahwa fungsi Anda tidak
secara tidak sengaja menggunakan variabel global yang Anda maksudkan sebagai lokal. (Ini adalah sebuah
kesalahan yang sangat mudah dibuat dengan nama variabel sederhana seperti i, j, dan seterusnya.)

-D[fillet]
--debug[=fillet]
Aktifkan debugging program AWK. Secara default, debugger membaca perintah
interaktif dari keyboard (input standar). opsional fillet argumen
menentukan file dengan daftar perintah untuk debugger untuk mengeksekusi non-
secara interaktif.

-e program-teks
--sumber program-teks
penggunaan program-teks sebagai kode sumber program AWK. Opsi ini memungkinkan yang mudah
pencampuran fungsi perpustakaan (digunakan melalui -f dan --mengajukan pilihan) dengan sumber
kode yang dimasukkan pada baris perintah. Ini ditujukan terutama untuk AWK sedang hingga besar
program yang digunakan dalam skrip shell.

-E fillet
--eksekutif fillet
Mirip dengan -f, namun, opsi ini adalah yang terakhir diproses. Ini seharusnya
digunakan dengan #! skrip, terutama untuk aplikasi CGI, untuk menghindari masuk
pilihan atau kode sumber (!) pada baris perintah dari URL. Opsi ini menonaktifkan
tugas variabel baris perintah.

-g
--gen-pot
Pindai dan parsing program AWK, dan buat GNU .pot (Template Objek Portabel)
format file pada output standar dengan entri untuk semua string yang dapat dilokalkan di
program. Program itu sendiri tidak dijalankan. Lihat GNU gettext distribusi untuk
informasi lebih lanjut tentang .pot file.

-h
--membantu Cetak ringkasan yang relatif singkat dari opsi yang tersedia pada output standar.
(Per GNU Pengkodean Standar, opsi ini menyebabkan keluar langsung dan berhasil.)

-i termasuk-file
--termasuk termasuk-file
Muat pustaka sumber awk. Ini mencari perpustakaan menggunakan AWKPATH
variabel lingkungan. Jika pencarian awal gagal, upaya lain akan dilakukan
setelah menambahkan .wk akhiran. File akan dimuat hanya sekali (yaitu,
duplikat dihilangkan), dan kode tersebut bukan merupakan program utama
sumber.

-l lib
--memuat lib
Muat perpustakaan bersama lib. Ini mencari perpustakaan menggunakan AWKLIBPATH
variabel lingkungan. Jika pencarian awal gagal, upaya lain akan dilakukan
setelah menambahkan akhiran pustaka bersama default untuk platform. Perpustakaan
rutin inisialisasi diharapkan diberi nama dl_beban().

-L [nilai]
--serat[=nilai]
Berikan peringatan tentang konstruksi yang meragukan atau tidak portabel ke AWK lainnya
implementasi. Dengan argumen opsional fatal, peringatan serat menjadi fatal
kesalahan. Ini mungkin drastis, tetapi penggunaannya pasti akan mendorong perkembangan
program AWK yang lebih bersih. Dengan argumen opsional tidak sah, hanya peringatan tentang
hal-hal yang sebenarnya tidak sah dikeluarkan. (Ini belum sepenuhnya diterapkan.)

-M
--angka besar
Paksa aritmatika presisi sewenang-wenang pada angka. Opsi ini tidak berpengaruh jika melongo
tidak dikompilasi untuk menggunakan pustaka GNU MPFR dan MP.

-n
--non-desimal-data
Mengenali nilai oktal dan heksadesimal dalam data input. penggunaan ini Option dengan besar
hati hati!

-N
--gunakan-lc-numerik
kekuatan ini melongo untuk menggunakan karakter titik desimal lokal saat mem-parsing input
data. Meskipun standar POSIX memerlukan perilaku ini, dan melongo melakukannya ketika
--posix berlaku, standarnya adalah mengikuti perilaku tradisional dan menggunakan
titik sebagai titik desimal, bahkan di lokal di mana titik bukan desimal
karakter titik. Opsi ini mengesampingkan perilaku default, tanpa penuh
ketegasan kejam dari --posix .

-o[fillet]
--cukup-cetak[=fillet]
Keluarkan versi program yang cukup tercetak untuk fillet. Jika tidak fillet disediakan,
melongo menggunakan file bernama awkprof.keluar di direktori saat ini.

-O
--optimalkan
Aktifkan pengoptimalan pada representasi internal program. Saat ini,
ini termasuk pelipatan konstan sederhana, dan penghapusan panggilan ekor untuk rekursif
fungsi. Itu melongo pengelola berharap untuk menambahkan pengoptimalan tambahan dari waktu ke waktu.

-p[file-prof]
--Profil[=file-prof]
Mulai sesi pembuatan profil, dan kirim data pembuatan profil ke file-prof. Default
is awkprof.keluar. Profil berisi jumlah eksekusi setiap pernyataan di
program di margin kiri dan jumlah panggilan fungsi untuk setiap fungsi yang ditentukan pengguna.

-P
--posix
Ini menyala kesesuaian mode, dengan batasan tambahan berikut:

· \x urutan pelarian tidak dikenali.

· Hanya spasi dan tab yang bertindak sebagai pemisah bidang ketika FS diatur ke satu ruang,
baris baru tidak.

· Anda tidak dapat melanjutkan baris setelahnya ? dan :.

· Sinonimnya fungsi untuk kata kunci fungsi tidak diakui.

· Operator ** dan **== tidak dapat digunakan sebagai pengganti ^ dan ^=.

-r
--interval ulang
Aktifkan penggunaan selang ekspresi dalam pencocokan ekspresi reguler (lihat Reguler
Ekspresi, di bawah). Ekspresi interval tidak tersedia secara tradisional di
bahasa AWK. Standar POSIX menambahkannya, untuk membuat Wow dan Egrep konsisten dengan
satu sama lain. Mereka diaktifkan secara default, tetapi opsi ini tetap untuk digunakan dengan
--tradisional.

-S
--bak pasir
Berjalan melongo dalam mode kotak pasir, nonaktifkan sistem() fungsi, pengalihan input dengan
getline, pengalihan keluaran dengan mencetak dan Printf, dan memuat ekstensi dinamis.
Eksekusi perintah (melalui pipeline) juga dinonaktifkan. Ini secara efektif memblokir a
skrip dari mengakses sumber daya lokal (kecuali untuk file yang ditentukan di
garis komando).

-t
--lint-tua
Berikan peringatan tentang konstruksi yang tidak portabel ke versi asli
UNIX Wow.

-V
--Versi: kapan
Informasi versi cetak untuk salinan khusus ini melongo pada keluaran standar.
Ini berguna terutama untuk mengetahui apakah salinan saat ini dari melongo di sistem Anda sudah habis
sampai saat ini sehubungan dengan apa pun yang didistribusikan oleh Free Software Foundation.
Ini juga berguna saat melaporkan bug. (Per GNU Pengkodean Standar, Ini
opsi menyebabkan jalan keluar yang segera dan berhasil.)

-- Tandai akhir opsi. Ini berguna untuk memungkinkan argumen lebih lanjut ke AWK
program itu sendiri untuk memulai dengan "-". Ini memberikan konsistensi dengan argumen
konvensi parsing yang digunakan oleh sebagian besar program POSIX lainnya.

Dalam mode kompatibilitas, opsi lain ditandai sebagai tidak valid, tetapi sebaliknya
diabaikan. Dalam operasi normal, selama teks program telah disediakan, opsi tidak diketahui
diteruskan ke program AWK di ARGV array untuk diproses. Ini terutama
berguna untuk menjalankan program AWK melalui "#!" mekanisme penerjemah yang dapat dieksekusi.

Untuk kompatibilitas POSIX, -W opsi dapat digunakan, diikuti dengan nama opsi panjang.

AWK PROGRAM EKSEKUSI


Program AWK terdiri dari urutan pernyataan pola-tindakan dan fungsi opsional
definisi.

@termasuk "nama file"
@memuat "nama file"
belt hold { tindakan Laporan }
fungsi nama(parameter daftar) { Laporan }

Melongo pertama membaca sumber program dari berkas program(s) jika ditentukan, dari argumen
untuk --sumber, atau dari argumen non-opsi pertama di baris perintah. NS -f dan
--sumber opsi dapat digunakan beberapa kali pada baris perintah. Melongo membaca program
teks seolah-olah semua berkas programs dan teks sumber baris perintah telah digabungkan
bersama. Ini berguna untuk membangun perpustakaan fungsi AWK, tanpa harus
memasukkannya ke dalam setiap program AWK baru yang menggunakannya. Ini juga memberikan kemampuan untuk mencampur
fungsi perpustakaan dengan program baris perintah.

Selain itu, baris yang dimulai dengan @termasuk dapat digunakan untuk memasukkan file sumber lain ke dalam
program Anda, membuat penggunaan perpustakaan menjadi lebih mudah. Ini setara dengan menggunakan -i .

Garis yang dimulai dengan @memuat dapat digunakan untuk memuat pustaka bersama ke dalam program Anda. Ini
setara dengan menggunakan -l .

Variabel lingkungan AWKPATH menentukan jalur pencarian untuk digunakan saat menemukan file sumber
bernama dengan -f dan -i pilihan. Jika variabel ini tidak ada, jalur defaultnya adalah
".:/usr/local/share/awk". (Direktori sebenarnya dapat bervariasi, tergantung pada caranya melongo adalah
dibangun dan diinstal.) Jika nama file diberikan kepada -f opsi berisi karakter "/", tidak
pencarian jalur dilakukan.

Variabel lingkungan AWKLIBPATH menentukan jalur pencarian untuk digunakan saat menemukan sumber
file bernama dengan -l pilihan. Jika variabel ini tidak ada, jalur defaultnya adalah
"/usr/local/lib/gawk". (Direktori sebenarnya dapat bervariasi, tergantung pada caranya melongo dibangun
dan dipasang.)

Melongo mengeksekusi program AWK dalam urutan berikut. Pertama, semua tugas variabel
ditentukan melalui -v opsi dilakukan. Lanjut, melongo mengkompilasi program menjadi
bentuk internal. Kemudian, melongo mengeksekusi kode di MULAI aturan (jika ada), dan kemudian
melanjutkan untuk membaca setiap file yang disebutkan dalam ARGV susunan (hingga ARGV[ARGC]). Jika tidak ada
file bernama pada baris perintah, melongo membaca input standar.

Jika nama file pada baris perintah memiliki bentuk adalah=val itu diperlakukan sebagai variabel
penugasan. Variabel adalah akan diberi nilai val. (Ini terjadi setelah
MULAI aturan telah dijalankan.) Penetapan variabel baris perintah paling berguna untuk
menetapkan nilai secara dinamis ke variabel yang digunakan AWK untuk mengontrol bagaimana input dipecah menjadi
bidang dan catatan. Ini juga berguna untuk mengontrol status jika beberapa lintasan diperlukan
lebih dari satu file data.

Jika nilai elemen tertentu dari ARGV kosong (""), melongo melompati itu.

Untuk setiap file input, jika a AWAL FILE aturan ada, melongo mengeksekusi kode terkait sebelumnya
memproses isi file. Demikian pula, melongo mengeksekusi kode yang terkait dengan
FILE AKHIR setelah memproses file.

Untuk setiap record dalam input, melongo tes untuk melihat apakah itu cocok dengan apapun belt hold di AWK
program. Untuk setiap pola yang cocok dengan record, melongo mengeksekusi terkait tindakan.
Pola diuji sesuai urutan kemunculannya dalam program.

Akhirnya, setelah semua input habis, melongo mengeksekusi kode di AKHIR aturan (jika
setiap).

perintah baris Direktori
Menurut POSIX, file bernama di Wow baris perintah harus berupa file teks. Perilaku
adalah ``tidak terdefinisi'' jika tidak. Sebagian besar versi Wow perlakukan direktori pada perintah
baris sebagai kesalahan fatal.

Dimulai dengan versi 4.0 dari melongo, direktori pada baris perintah menghasilkan peringatan, tetapi
sebaliknya dilewati. Jika salah satu dari --posix or --tradisional pilihan diberikan, maka
melongo kembali memperlakukan direktori pada baris perintah sebagai kesalahan fatal.

VARIABEL, REKAM DAN BIDANG


Variabel AWK bersifat dinamis; mereka muncul saat pertama kali digunakan. Milik mereka
nilai adalah angka atau string floating-point, atau keduanya, tergantung pada bagaimana mereka
digunakan. AWK juga memiliki array satu dimensi; array dengan beberapa dimensi mungkin
simulasi. Melongo menyediakan array array yang sebenarnya; Lihat Array, di bawah. Beberapa yang telah ditentukan sebelumnya
variabel ditetapkan saat program berjalan; ini dijelaskan sesuai kebutuhan dan diringkas di bawah ini.

Arsip
Biasanya, catatan dipisahkan oleh karakter baris baru. Anda dapat mengontrol bagaimana catatan itu
dipisahkan dengan menetapkan nilai ke variabel bawaan RS. Jika RS adalah setiap karakter tunggal,
karakter yang memisahkan catatan. Sebaliknya, RS adalah ekspresi reguler. Teks di
input yang cocok dengan ekspresi reguler ini memisahkan record. Namun, di
mode kompatibilitas, hanya karakter pertama dari nilai string yang digunakan untuk memisahkan
catatan. Jika RS diatur ke string nol, kemudian catatan dipisahkan oleh baris kosong.
Ketika RS diatur ke string nol, karakter baris baru selalu bertindak sebagai pemisah bidang,
selain nilai apa pun FS mungkin.

Fields
Saat setiap record input dibaca, melongo membagi catatan menjadi bidang, dengan menggunakan nilai
FS variabel sebagai pemisah bidang. Jika FS adalah karakter tunggal, bidang dipisahkan oleh
karakter itu. Jika FS adalah string nol, maka setiap karakter individu menjadi a
lapangan terpisah. Sebaliknya, FS diharapkan menjadi ekspresi reguler penuh. Dalam
kasus khusus itu FS adalah satu spasi, bidang dipisahkan oleh spasi dan/atau tab
dan/atau baris baru. (Tapi lihat bagian POSIX KOMPATIBILITAS, di bawah). CATATAN: Nilai dari
Abaikan (lihat di bawah) juga memengaruhi cara bidang dibagi ketika FS adalah ekspresi reguler,
dan bagaimana catatan dipisahkan ketika RS adalah ekspresi reguler.

Jika LEBAR LAPANGAN variabel diatur ke daftar angka yang dipisahkan spasi, setiap bidang adalah
diharapkan memiliki lebar tetap, dan melongo membagi catatan menggunakan lebar yang ditentukan.
Nilai dari FS diabaikan. Menetapkan nilai baru untuk FS or FPAT mengesampingkan penggunaan
LEBAR LAPANGAN.

Demikian pula jika FPAT variabel diatur ke string yang mewakili ekspresi reguler, masing-masing
bidang terdiri dari teks yang cocok dengan ekspresi reguler itu. Dalam hal ini, reguler
ekspresi menggambarkan bidang itu sendiri, bukan teks yang memisahkan bidang.
Menetapkan nilai baru untuk FS or LEBAR LAPANGAN mengesampingkan penggunaan FPAT.

Setiap bidang dalam catatan input dapat direferensikan oleh posisinya: $1, $2, Dan sebagainya. $0
adalah seluruh catatan. Bidang tidak perlu direferensikan oleh konstanta:

n = 5
mencetak $n

mencetak bidang kelima dalam catatan input.

Variabel NF diatur ke jumlah total bidang dalam catatan input.

Referensi ke bidang yang tidak ada (yaitu, bidang setelah $NF) menghasilkan string-nol.
Namun, menetapkan ke bidang yang tidak ada (misalnya, $(NF+2) = 5) meningkatkan nilai NF,
membuat bidang intervensi apa pun dengan string nol sebagai nilainya, dan menyebabkan nilai
of $0 untuk dihitung ulang, dengan bidang yang dipisahkan oleh nilai FSO. Referensi
ke bidang bernomor negatif menyebabkan kesalahan fatal. Pengurangan NF menyebabkan nilai
bidang melewati nilai baru akan hilang, dan nilai $0 dihitung ulang, dengan
bidang yang dipisahkan oleh nilai FSO.

Menetapkan nilai ke bidang yang ada menyebabkan seluruh catatan dibangun kembali ketika $0 is
dirujuk. Demikian pula, menetapkan nilai untuk $0 menyebabkan rekaman dibagi ulang, menciptakan
nilai baru untuk bidang.

Built-in Variabel
Melongovariabel bawaannya adalah:

ARGC Jumlah argumen baris perintah (tidak termasuk opsi untuk melongo, Atau
sumber program).

ARGIND indeks di ARGV dari file saat ini sedang diproses.

ARGV Array argumen baris perintah. Array diindeks dari 0 hingga ARGC - 1.
Mengubah konten secara dinamis ARGV dapat mengontrol file yang digunakan untuk data.

MODE BIN Pada sistem non-POSIX, menentukan penggunaan mode "biner" untuk semua file I/O.
Nilai numerik 1, 2, atau 3, tentukan file input, file output, atau semuanya
file, masing-masing, harus menggunakan I/O biner. Nilai string dari "R", atau "w"
tentukan bahwa file input, atau file output, masing-masing, harus menggunakan biner
I/O. Nilai string dari "rw" or "wr" tentukan bahwa semua file harus menggunakan biner
I/O. Nilai string lainnya diperlakukan sebagai "rw", tetapi menghasilkan peringatan
pesan.

KONVFMT Format konversi untuk angka, "%.6g", secara default.

MENGEPUNG Array yang berisi nilai-nilai lingkungan saat ini. Array adalah
diindeks oleh variabel lingkungan, setiap elemen menjadi nilai itu
variabel (misalnya, LINGKUNGAN["RUMAH"] mungkin "/rumah/Arnold"). Mengubah susunan ini
tidak mempengaruhi lingkungan yang dilihat oleh program-program yang melongo muncul melalui
pengalihan atau sistem() fungsi.

ERNO Jika terjadi kesalahan sistem, lakukan pengalihan untuk getline, saat membaca
untuk getline, atau selama a Menutup(), kemudian ERNO akan berisi string yang menjelaskan
kesalahan. Nilai tergantung pada terjemahan dalam bahasa non-Inggris.

LEBAR LAPANGAN Daftar lebar bidang yang dipisahkan spasi. Saat disetel, melongo mem-parsing input
ke dalam bidang dengan lebar tetap, alih-alih menggunakan nilai FS variabel sebagai
pemisah lapangan. Lihat Fieldsdi atas.

NAMA FILE Nama file input saat ini. Jika tidak ada file yang ditentukan pada perintah
garis, nilai NAMA FILE adalah "-". Namun, NAMA FILE tidak terdefinisi di dalam
MULAI aturan (kecuali ditetapkan oleh getline).

FNR Nomor catatan input dalam file input saat ini.

FPAT Ekspresi reguler yang menjelaskan konten bidang dalam catatan. Kapan
set, melongo mem-parsing input ke dalam bidang, di mana bidangnya cocok dengan yang biasa
ekspresi, alih-alih menggunakan nilai FS variabel sebagai bidang
pemisah. Lihat Fieldsdi atas.

FS Pemisah bidang input, spasi secara default. Lihat Fieldsdi atas.

FUCTAB Sebuah array yang indeks dan nilai yang sesuai adalah nama dari semua pengguna-
didefinisikan atau fungsi ekstensi dalam program. CATATAN: Anda tidak boleh menggunakan
hapus pernyataan dengan FUCTAB Himpunan.

Abaikan Mengontrol sensitivitas huruf besar/kecil dari semua ekspresi reguler dan operasi string.
If Abaikan memiliki nilai bukan nol, lalu perbandingan string dan pola
pencocokan dalam aturan, pemisahan bidang dengan FS dan FPAT, pisahkan rekaman dengan
RS, ekspresi reguler yang cocok dengan ~ dan !~, Dan gensub(), gsub(),
indeks(), cocok(), pisahkan (), membagi(), dan sub() fungsi bawaan semua diabaikan
kasus ketika melakukan operasi ekspresi reguler. CATATAN: Berlangganan array adalah
tidak terpengaruh. Namun, bermacam-macam() dan bermacam-macam() fungsi terpengaruh.
Jadi, jika Abaikan tidak sama dengan nol, /aB/ cocok dengan semua string
"ab", "aB", "Ab", dan "AB". Seperti semua variabel AWK, nilai awal
Abaikan adalah nol, jadi semua ekspresi reguler dan operasi string adalah
biasanya peka huruf besar/kecil.

serat Menyediakan kontrol dinamis dari --serat pilihan dari dalam program AWK.
Bila benar, melongo mencetak peringatan serat. Ketika salah, tidak. Saat ditugaskan
nilai string "fatal", peringatan serat menjadi kesalahan fatal, persis seperti
--lint=fatal. Nilai sebenarnya lainnya hanya mencetak peringatan.

NF Jumlah bidang dalam catatan input saat ini.

NR Jumlah total catatan input yang terlihat sejauh ini.

OFMT Format keluaran untuk angka, "%.6g", secara default.

FSO Pemisah bidang keluaran, spasi secara default.

ORS Pemisah catatan keluaran, secara default baris baru.

PREC Presisi kerja angka floating-point presisi sewenang-wenang, 53 by
standar.

PROCINFO Elemen larik ini menyediakan akses ke informasi tentang menjalankan AWK
program. Pada beberapa sistem, mungkin ada elemen dalam array, "grup 1"
melalui "kelompokn" untuk beberapa n, yaitu banyaknya kelompok pelengkap yang
proses memiliki. Menggunakan in operator untuk menguji elemen-elemen ini. NS
elemen berikut dijamin akan tersedia:

PROCINFO["tegas"] Nilai dari menjadi gila(2) panggilan sistem.

PROCINFO["waktu-waktu"]
String format waktu default untuk waktu-waktu().

PROCINFO["euid"] Nilai dari geteuid(2) panggilan sistem.

PROCINFO["FS"] "FS" jika pemisahan bidang dengan FS sedang berlaku, "FPAT" if
pemisahan bidang dengan FPAT berlaku, atau "LEBAR LAPANGAN"
jika pemisahan bidang dengan LEBAR LAPANGAN sedang berlaku.

PROCINFO["pengidentifikasi"]
Sebuah subarray, diindeks dengan nama semua pengidentifikasi yang digunakan
dalam teks program AWK. Nilai menunjukkan apa
melongo tahu tentang pengidentifikasi setelah selesai
menguraikan program; mereka tidak diperbarui sementara
program berjalan. Untuk setiap pengenal, nilai
elemen adalah salah satu dari berikut:

"Himpunan"
Pengidentifikasi adalah array.

"bawaan"
Pengidentifikasi adalah fungsi bawaan.

"perpanjangan"
Pengidentifikasi adalah fungsi ekstensi yang dimuat melalui
@memuat or -l.

"skalar"
Pengidentifikasi adalah skalar.

"tidak diketik"
Pengidentifikasi tidak diketik (dapat digunakan sebagai
skalar atau larik, melongo belum tahu).

"pengguna" Pengidentifikasi adalah fungsi yang ditentukan pengguna.

PROCINFO["gid"] Nilai dari menjadi pusing(2) panggilan sistem.

PROCINFO["pgrpid"] ID grup proses dari proses saat ini.

PROCINFO["pid"] ID proses dari proses saat ini.

PROCINFO["ppid"] ID proses induk dari proses saat ini.

PROCINFO["uid"] Nilai dari getuid(2) panggilan sistem.

PROCINFO["diurutkan_dalam"]
Jika elemen ini ada di PROCINFO, maka nilainya
mengontrol urutan elemen array yang dilalui
in untuk loop. Nilai yang didukung adalah "@ind_str_asc",
"@ind_num_asc", "@val_type_asc", "@val_str_asc",
"@val_num_asc", "@ind_str_desc", "@ind_num_desc",
"@val_type_desc", "@val_str_desc", "@val_num_desc", dan
"@belum disortir". Nilainya juga bisa berupa nama apa saja
fungsi perbandingan didefinisikan sebagai berikut:

fungsi cmp_fungsi(i1, v1, saya2, v2)

dimana i1 dan i2 adalah indeks, dan v1 dan v2 adalah
nilai yang sesuai dari dua elemen yang dibandingkan.
Itu harus mengembalikan angka yang kurang dari, sama dengan, atau lebih besar
dari 0, tergantung pada bagaimana elemen-elemen array harus
diperintahkan.

PROCINFO["masukan", "READ_TIMEOUT"]
Batas waktu dalam milidetik untuk membaca data dari memasukkan,
dimana memasukkan adalah string pengalihan atau nama file. Sebuah nilai
nol atau kurang dari nol berarti tidak ada batas waktu.

PROCINFO["mpfr_version"]
Versi perpustakaan GNU MPFR yang digunakan untuk sewenang-wenang
dukungan nomor presisi di melongo. Entri ini tidak
hadir jika dukungan MPFR tidak dikompilasi menjadi melongo.

PROCINFO["gmp_version"]
Versi perpustakaan GNU MP yang digunakan untuk sewenang-wenang
dukungan nomor presisi di melongo. Entri ini tidak
hadir jika dukungan MPFR tidak dikompilasi menjadi melongo.

PROCINFO["prec_max"]
Presisi maksimum yang didukung oleh perpustakaan GNU MPFR
untuk bilangan floating-point presisi yang berubah-ubah. Ini
entri tidak ada jika dukungan MPFR tidak dikompilasi ke dalam
melongo.

PROCINFO["prec_min"]
Presisi minimum yang diizinkan oleh pustaka GNU MPFR untuk
angka floating-point presisi sewenang-wenang. entri ini adalah
tidak ada jika dukungan MPFR tidak dikompilasi menjadi melongo.

PROCINFO["api_major"]
Versi utama dari ekstensi API. Entri ini tidak
hadir jika memuat ekstensi dinamis tidak tersedia.

PROCINFO["api_minor"]
Versi minor dari ekstensi API. Entri ini tidak
hadir jika memuat ekstensi dinamis tidak tersedia.

PROCINFO["versi"] versi melongo.

MODE ROUND Mode pembulatan yang digunakan untuk aritmatika presisi arbitrer pada angka, dengan
kegagalan "N" (mode IEEE-754 roundTiesToEven). Nilai yang diterima adalah "N" or
"n" untuk roundTiesToEven, "Kamu" or "kamu" untuk putaranMenuju Positif, "D" or "d" untuk
bulatMenujuNegatif, "Z" or "z" untuk roundTowardZero, dan jika versi Anda
Pustaka GNU MPFR mendukungnya, "A" or "A" untuk roundTiesToAway.

RS Pemisah catatan input, secara default baris baru.

RT Terminator rekaman. Melongo set RT ke teks input yang cocok dengan
karakter atau ekspresi reguler yang ditentukan oleh RS.

MULAI Indeks karakter pertama dicocokkan dengan cocok(); 0 jika tidak cocok. (Ini
menyiratkan bahwa indeks karakter mulai dari satu.)

PANJANG Panjang senar dicocokkan dengan cocok(); -1 jika tidak cocok.

SUBSEPS Karakter yang digunakan untuk memisahkan beberapa subskrip dalam elemen array, dengan
kegagalan "\034".

SIMTAB Array yang indeksnya adalah nama dari semua variabel global yang didefinisikan saat ini
dan array dalam program. Array dapat digunakan untuk akses tidak langsung untuk membaca
atau tulis nilai variabel:

foo = 5
SYMTAB["ayo"] = 4
mencetak foo # cetakan 4

Grafik isar() fungsi dapat digunakan untuk menguji apakah suatu elemen dalam SIMTAB adalah
Himpunan. Anda tidak boleh menggunakan hapus pernyataan dengan SIMTAB Himpunan.

DOMAIN TEKS Domain teks program AWK; digunakan untuk menemukan terjemahan yang dilokalkan
untuk string program.

Array
Array disubskrip dengan ekspresi di antara tanda kurung siku ([ dan ]). Jika
ekspresi adalah daftar ekspresi (cepat, cepat ...) maka subscript array adalah string
terdiri dari rangkaian nilai (string) dari setiap ekspresi, dipisahkan oleh
nilai dari SUBSEPS variabel. Fasilitas ini digunakan untuk mensimulasikan multidimensi
array. Sebagai contoh:

i = "A"; j = "B"; k = "C"
x[saya, j, k] = "Halo, dunia\n"

memberikan string "Halo, dunia\n" ke elemen array x yang diindeks oleh
tali "A\034B\034C". Semua larik di AWK bersifat asosiatif, yaitu, diindeks oleh nilai string.

Operator khusus in dapat digunakan untuk menguji apakah sebuah array memiliki indeks yang terdiri dari a
nilai tertentu:

if (val in Himpunan)
mencetak larik[val]

Jika array memiliki banyak subskrip, gunakan (Saya, j) in susunan.

Grafik in konstruksi juga dapat digunakan dalam untuk loop untuk mengulangi semua elemen dari an
Himpunan. Namun, (Saya, j) in susunan konstruksi hanya berfungsi dalam pengujian, bukan dalam untuk loop.

Sebuah elemen dapat dihapus dari array menggunakan hapus penyataan. NS hapus pernyataan
juga dapat digunakan untuk menghapus seluruh isi array, hanya dengan menentukan array
nama tanpa subskrip.

melongo mendukung array multidimensi yang sebenarnya. Itu tidak mengharuskan array seperti itu
``persegi panjang'' seperti dalam C atau C++. Sebagai contoh:

sebuah[1] = 5
sebuah [2][1] = 6
sebuah [2][2] = 7

CATATAN: Anda mungkin perlu memberi tahu melongo bahwa elemen array benar-benar subarray untuk digunakan
itu dimana melongo mengharapkan sebuah array (seperti dalam argumen kedua untuk membagi()). Anda dapat melakukan
ini dengan membuat elemen di subarray dan kemudian menghapusnya dengan hapus
pernyataan.

Variabel ketikan Dan Konversi
Variabel dan bidang dapat berupa angka (titik mengambang), atau string, atau keduanya. Bagaimana nilainya?
dari suatu variabel ditafsirkan tergantung pada konteksnya. Jika digunakan dalam ekspresi numerik,
itu akan diperlakukan sebagai angka; jika digunakan sebagai string akan diperlakukan sebagai string.

Untuk memaksa variabel diperlakukan sebagai angka, tambahkan 0 padanya; untuk memaksanya diperlakukan sebagai
string, gabungkan dengan string nol.

Variabel yang tidak diinisialisasi memiliki nilai numerik 0 dan nilai string "" (nol, atau
kosong, string).

Ketika string harus dikonversi ke angka, konversi dilakukan dengan menggunakan
jalan(3). Suatu bilangan diubah menjadi string dengan menggunakan nilai KONVFMT sebagai format
string untuk lari cepat(3), dengan nilai numerik dari variabel sebagai argumen. Namun,
meskipun semua angka dalam AWK adalah floating-point, nilai integralnya adalah selalu dikonversi sebagai
bilangan bulat. Jadi, diberikan

KONVFMT = "%2.2f"
a = 12
b = a ""

variabel b memiliki nilai string "12" dan tidak "12.00".

CATATAN: Saat beroperasi dalam mode POSIX (seperti dengan --posix opsi), waspadalah terhadap lokal itu
pengaturan dapat mengganggu cara bilangan desimal diperlakukan: pemisah desimal dari
nomor yang Anda beri makan melongo harus sesuai dengan apa yang diharapkan oleh lokal Anda, baik itu
koma (,) atau titik (.).

Melongo melakukan perbandingan sebagai berikut: Jika dua variabel numerik, mereka dibandingkan
secara numerik. Jika satu nilai numerik dan yang lainnya memiliki nilai string yang merupakan "numerik"
string,” kemudian perbandingan juga dilakukan secara numerik. Jika tidak, nilai numeriknya adalah
dikonversi ke string dan perbandingan string dilakukan. Dua string dibandingkan, dari
saja, sebagai string.

Perhatikan bahwa konstanta string, seperti "57", Adalah tidak string numerik, mereka adalah string
konstanta. Gagasan "string numerik" hanya berlaku untuk bidang, getline memasukkan, NAMA FILE,
ARGV elemen, MENGEPUNG elemen dan elemen array yang dibuat oleh membagi() or
pisahkan () yaitu string numerik. Ide dasarnya adalah pemakai memasukkan, dan hanya pengguna
input, yang terlihat numerik, harus diperlakukan seperti itu.

Oktal dan Heksadesimal Konstanta
Anda dapat menggunakan konstanta oktal dan heksadesimal gaya-C dalam kode sumber program AWK Anda. Untuk
contoh nilai oktal 011 sama dengan desimal 9, dan nilai heksadesimal 0x11 is
sama dengan desimal 17.

Tali Konstanta
Konstanta string dalam AWK adalah urutan karakter yang diapit di antara tanda kutip ganda (seperti
"nilai"). Dalam string, pasti melarikan diri urutan diakui, seperti dalam C. Ini adalah:

\\ Sebuah garis miring terbalik.

\a Karakter "waspada"; biasanya karakter ASCII BEL.

\b Menghapus.

\f Umpan formulir.

\n Garis baru.

\r Kereta kembali.

\t Tab horisontal.

\v Tab vertikal.

\xhex digit
Karakter yang diwakili oleh string digit heksadesimal mengikuti \x. Sebagai
di ISO C, semua digit heksadesimal berikut dianggap sebagai bagian dari escape
urutan. (Fitur ini seharusnya memberi tahu kami sesuatu tentang desain bahasa dengan
panitia.) Misalnya, "\x1B" adalah karakter ASCII ESC (escape).

\ddd Karakter yang diwakili oleh 1-, 2-, atau 3-digit urutan digit oktal. Misalnya,
"\033" adalah karakter ASCII ESC (escape).

\c Karakter literal c.

Urutan escape juga dapat digunakan di dalam ekspresi reguler konstan (misalnya,
/[ \t\f\n\r\v]/ cocok dengan karakter spasi).

Dalam mode kompatibilitas, karakter yang diwakili oleh pelarian oktal dan heksadesimal
urutan diperlakukan secara harfiah ketika digunakan dalam konstanta ekspresi reguler. Dengan demikian, /a\52b/
adalah setara dengan /a\*b/.

POLA DAN TINDAKAN


AWK adalah bahasa berorientasi garis. Pola muncul terlebih dahulu, baru kemudian tindakan. Tindakan
pernyataan terlampir dalam { dan }. Entah polanya mungkin hilang, atau tindakannya mungkin
akan hilang, tetapi, tentu saja, tidak keduanya. Jika polanya tidak ada, aksinya akan dieksekusi
untuk setiap record input. Tindakan yang hilang sama dengan

{ mencetak }

yang mencetak seluruh catatan.

Komentar dimulai dengan # karakter, dan lanjutkan sampai akhir baris. Garis kosong
dapat digunakan untuk memisahkan pernyataan. Biasanya, sebuah pernyataan diakhiri dengan baris baru, namun,
ini tidak berlaku untuk baris yang diakhiri dengan koma, {, ?, :, &&, atau ||. Garis berakhiran do
or lain juga memiliki pernyataan mereka secara otomatis dilanjutkan pada baris berikut. Di dalam
kasus lain, sebuah baris dapat dilanjutkan dengan mengakhirinya dengan "\", dalam hal ini baris baru adalah
diabaikan.

Beberapa pernyataan dapat diletakkan dalam satu baris dengan memisahkannya dengan tanda “;”. Ini berlaku untuk
baik pernyataan dalam bagian aksi dari pasangan pola-aksi (kasus biasa), dan
untuk pernyataan pola-tindakan itu sendiri.

Pola
Pola AWK mungkin salah satu dari berikut ini:

MULAI
AKHIR
AWAL FILE
FILE AKHIR
/reguler ekspresi/
relasional ekspresi
belt hold && belt hold
belt hold || belt hold
belt hold ? belt hold : belt hold
(belt hold)
! belt hold
pattern1, pattern2

MULAI dan AKHIR adalah dua jenis pola khusus yang tidak diuji terhadap input.
Bagian dari semua tindakan MULAI pola digabungkan seolah-olah semua pernyataan telah
ditulis dalam satu MULAI aturan. Mereka dieksekusi sebelum salah satu input dibaca.
Demikian pula, semua AKHIR aturan digabungkan, dan dieksekusi ketika semua input habis (atau
ketika suatu keluar pernyataan dijalankan). MULAI dan AKHIR pola tidak dapat digabungkan dengan yang lain
pola dalam ekspresi pola. MULAI dan AKHIR pola tidak boleh memiliki bagian tindakan yang hilang.

AWAL FILE dan FILE AKHIR adalah pola khusus tambahan yang tubuhnya dieksekusi sebelumnya
membaca catatan pertama dari setiap file input baris perintah dan setelah membaca catatan terakhir
dari setiap file. Di dalam AWAL FILE aturan, nilai ERNO akan menjadi string kosong jika
file berhasil dibuka. Jika tidak, ada beberapa masalah dengan file dan
kode harus menggunakan berkas berikutnya untuk melewatkannya. Jika itu tidak dilakukan, melongo menghasilkan fatal yang biasa
kesalahan untuk file yang tidak dapat dibuka.

Untuk /reguler ekspresi/ pola, pernyataan terkait dieksekusi untuk setiap input
record yang cocok dengan ekspresi reguler. Ekspresi reguler sama dengan yang ada di
Egrep(1), dan diringkas di bawah ini.

A relasional ekspresi dapat menggunakan salah satu operator yang ditentukan di bawah ini di bagian tentang
tindakan. Ini biasanya menguji apakah bidang tertentu cocok dengan ekspresi reguler tertentu.

Grafik &&, ||, dan ! operator adalah logika AND, logika OR, dan logika NOT, masing-masing,
seperti di C. Mereka melakukan evaluasi hubung singkat, juga seperti di C, dan digunakan untuk menggabungkan lebih banyak
ekspresi pola primitif. Seperti dalam kebanyakan bahasa, tanda kurung dapat digunakan untuk mengubah
urutan evaluasi.

Grafik ?: operator seperti operator yang sama di C. Jika pola pertama benar maka
pola yang digunakan untuk pengujian adalah pola kedua, selain itu yang ketiga. Hanya satu dari
pola kedua dan ketiga dievaluasi.

Grafik pattern1, pattern2 bentuk ekspresi disebut jarak belt hold. Ini cocok dengan semua
masukan catatan dimulai dengan catatan yang cocok pattern1, dan berlanjut sampai rekor
yang cocok pattern2, inklusif. Itu tidak digabungkan dengan jenis pola lainnya
ekspresi.

Reguler Ekspresi
Ekspresi reguler adalah jenis diperpanjang yang ditemukan di Egrep. Mereka terdiri dari karakter
sebagai berikut:

c Cocok dengan non-metakarakter c.

\c Cocok dengan karakter literalnya c.

. Cocok dengan karakter apa pun termasuk garis baru.

^ Cocok dengan awal string.

$ Cocok dengan akhir string.

[abc...] Daftar karakter: cocok dengan salah satu karakter abc.... Anda dapat menyertakan
berbagai karakter dengan memisahkannya dengan tanda hubung.

[^abc...] Daftar karakter yang dinegasikan: cocok dengan karakter apa pun kecuali abc....

r1|r2 Alternatif: cocok juga r1 or r2.

r1r2 Rangkaian: pertandingan r1, Dan kemudian r2.

r+ Cocok dengan satu atau lebih r'S.

r* Cocok dengan nol atau lebih r'S.

r? Cocok dengan nol atau satu r'S.

(r) Pengelompokan: pertandingan r.

r{n}
r{n,}
r{n,m} Satu atau dua angka di dalam kurung kurawal menunjukkan selang ekspresi. Jika ada
satu angka dalam kurung kurawal, ekspresi reguler sebelumnya r diulangi n
waktu. Jika ada dua angka yang dipisahkan dengan koma, r diulangi n untuk m
waktu. Jika ada satu angka yang diikuti koma, maka r diulang setidaknya
n kali.

\y Mencocokkan string kosong di awal atau akhir kata.

\B Mencocokkan string kosong dalam sebuah kata.

\< Mencocokkan string kosong di awal kata.

\> Mencocokkan string kosong di akhir kata.

\s Cocok dengan karakter spasi putih apa pun.

\S Cocok dengan karakter nonspasi apa pun.

\w Cocok dengan karakter konstituen kata (huruf, angka, atau garis bawah).

\W Cocok dengan karakter apa pun yang bukan konstituen kata.

\` Cocok dengan string kosong di awal buffer (string).

\' Cocok dengan string kosong di akhir buffer.

Urutan escape yang valid dalam konstanta string (lihat Tali Konstanta) juga merupakan
valid dalam ekspresi reguler.

Karakter kelas-kelas adalah fitur yang diperkenalkan dalam standar POSIX. Kelas karakter adalah
notasi khusus untuk menggambarkan daftar karakter yang memiliki atribut tertentu, tetapi
di mana karakter sebenarnya itu sendiri dapat bervariasi dari satu negara ke negara lain dan/atau dari
set karakter ke set karakter. Misalnya, gagasan tentang apa itu alfabet
karakter berbeda di Amerika Serikat dan di Perancis.

Kelas karakter hanya valid dalam ekspresi reguler dalam tanda kurung karakter
Daftar. Kelas karakter terdiri dari [:, kata kunci yang menunjukkan kelas, dan :]. itu
kelas karakter yang didefinisikan oleh standar POSIX adalah:

[:alum:] Karakter alfanumerik.

[:alfa:] Karakter alfabet.

[:kosong:] Spasi atau karakter tab.

[:ctrl:] Karakter kontrol.

[:angka:] Karakter numerik.

[:grafik:] Karakter yang dapat dicetak dan terlihat. (Sebuah spasi dapat dicetak, tetapi tidak
terlihat, sedangkan a adalah keduanya.)

[:lebih rendah:] Karakter alfabet huruf kecil.

[:mencetak:] Karakter yang dapat dicetak (karakter yang bukan karakter kontrol.)

[:puncak:] Karakter tanda baca (karakter yang bukan huruf, angka, kontrol
karakter, atau karakter spasi).

[:ruang angkasa:] Karakter spasi (seperti spasi, tab, dan formfeed, untuk beberapa nama).

[:atas:] Karakter alfabet huruf besar.

[:xdigit:] Karakter yang merupakan digit heksadesimal.

Misalnya, sebelum standar POSIX, untuk mencocokkan karakter alfanumerik, Anda harus
harus menulis /[A-Za-z0-9]/. Jika set karakter Anda memiliki karakter alfabet lain di dalamnya,
ini tidak akan cocok dengan mereka, dan jika set karakter Anda disusun secara berbeda dari ASCII, ini
bahkan mungkin tidak cocok dengan karakter alfanumerik ASCII. Dengan kelas karakter POSIX,
kamu bisa menulis /[[:alum:]]/, dan ini cocok dengan karakter alfabet dan numerik di
set karakter Anda, apa pun itu.

Dua urutan khusus tambahan dapat muncul dalam daftar karakter. Ini berlaku untuk non-ASCII
set karakter, yang dapat memiliki simbol tunggal (disebut menyusun elemen) yaitu
diwakili dengan lebih dari satu karakter, serta beberapa karakter yang
setara untuk menyusun, atau pengurutan, tujuan. (Misalnya, dalam bahasa Prancis, "e" dan a . biasa
"`" beraksen kuburan setara.)

Menyusun Simbol
Simbol susunan adalah elemen susunan multi-karakter yang dilampirkan dalam [. dan .].
Sebagai contoh, jika ch adalah elemen penyusunan, maka [[.ch.]] adalah ekspresi reguler
yang cocok dengan elemen penyusunan ini, sementara [ch] adalah ekspresi reguler yang
cocok juga c or h.

Kelas Kesetaraan
Kelas ekivalensi adalah nama khusus lokal untuk daftar karakter yang
setara. Nama terlampir di [= dan =]. Misalnya, nama e mungkin
digunakan untuk mewakili semua "e," "´," dan "`." Pada kasus ini, [[=e=]] biasa
ekspresi yang cocok dengan salah satu e, e', atau e`.

Fitur-fitur ini sangat berharga di tempat yang tidak berbahasa Inggris. Fungsi perpustakaan
bahwa melongo digunakan untuk pencocokan ekspresi reguler saat ini hanya mengenali karakter POSIX
kelas; mereka tidak mengenali simbol-simbol yang menyusun atau kelas-kelas kesetaraan.

Grafik \y, \B, \<, \>, \s, \S, \w, \W, \`, dan \' operator khusus untuk melongo; mereka
ekstensi berdasarkan fasilitas di perpustakaan ekspresi reguler GNU.

Berbagai opsi baris perintah mengontrol caranya melongo menafsirkan karakter secara teratur
ekspresi.

Tidak ada pilihan
Dalam kasus default, melongo menyediakan semua fasilitas ekspresi reguler POSIX
dan operator ekspresi reguler GNU yang dijelaskan di atas.

--posix
Hanya ekspresi reguler POSIX yang didukung, operator GNU tidak khusus.
(Misalnya, \w cocok dengan literal w).

--tradisional
UNIX tradisional Wow ekspresi reguler cocok. Operator GNU tidak
khusus, dan ekspresi interval tidak tersedia. Karakter yang dijelaskan oleh oktal
dan urutan melarikan diri heksadesimal diperlakukan secara harfiah, bahkan jika mereka mewakili
metakarakter ekspresi reguler.

--interval ulang
Izinkan ekspresi interval dalam ekspresi reguler, bahkan jika --tradisional telah
disediakan.

tindakan
Pernyataan tindakan diapit oleh kurung kurawal, { dan }. Pernyataan tindakan terdiri dari yang biasa
pernyataan penugasan, kondisional, dan perulangan ditemukan di sebagian besar bahasa. Operator,
pernyataan kontrol, dan pernyataan input/output yang tersedia berpola setelah yang ada di C.

Operator
Operator di AWK, dalam urutan prioritas yang menurun, adalah:

(...) Pengelompokan

$ Referensi lapangan.

++ -- Increment dan decrement, baik prefix maupun postfix.

^ Eksponen (** juga dapat digunakan, dan **== untuk operator penugasan).

+ - ! Unary plus, unary minus, dan negasi logis.

* / % Perkalian, pembagian, dan modulus.

+ - Penambahan dan pengurangan.

ruang Penggabungan string.

| |& I/O berpipa untuk getline, mencetak, dan Printf.

< > <= >= != ==
Operator relasional reguler.

~ !~ Pencocokan ekspresi reguler, pencocokan yang dinegasikan. CATATAN: Jangan gunakan reguler yang konstan
ekspresi (/foo/) di sisi kiri a ~ or !~. Gunakan hanya satu di
sisi kanan. Ekspresi /foo/ ~ exp memiliki arti yang sama dengan ($0 ~
/fu/) ~ exp). Ini biasanya tidak apa yang Anda inginkan.

in Keanggotaan array.

&& logis DAN.

|| logis ATAU.

?: Ekspresi bersyarat C. Ini memiliki bentuk expr1 ? expr2 : expr3. Jika
expr1 benar, nilai ekspresinya adalah expr2, jika tidak, itu adalah expr3.
Hanya satu dari expr2 dan expr3 dievaluasi.

= += -= *= /= %= ^=
Penugasan. Kedua tugas mutlak (adalah = nilai) dan penugasan operator
(bentuk lain) didukung.

kontrol Laporan
Pernyataan kontrol adalah sebagai berikut:

if (kondisi) pernyataan [ lain pernyataan ]
sementara (kondisi) pernyataan
do pernyataan sementara (kondisi)
untuk (expr1; expr2; expr3) pernyataan
untuk (adalah in susunan) pernyataan
istirahat
terus
hapus susunan[indeks]
hapus susunan
keluar [ ekspresi ]
{ Laporan }
saklar (ekspresi) {
kasus nilai|regex : pernyataan
...
[ default: pernyataan ]
}

I / O Laporan
Pernyataan input/output adalah sebagai berikut:

Menutup(fillet [, bagaimana]) Tutup file, pipa atau co-proses. opsional bagaimana seharusnya hanya
digunakan saat menutup salah satu ujung pipa dua arah ke proses bersama. Dia
harus berupa nilai string, baik "ke" or "dari".

getline set $0 dari catatan masukan berikutnya; mengatur NF, NR, FNR, RT.

getline <fillet set $0 dari rekaman berikutnya fillet; mengatur NF, RT.

getline adalah set adalah dari catatan masukan berikutnya; mengatur NR, FNR, RT.

getline adalah <fillet set adalah dari rekaman berikutnya fillet, RT.

Command | getline [adalah]
Run Command menyalurkan output ke dalam $0 or adalah, seperti di atas, dan
RT.

Command |& getline [adalah]
Run Command sebagai proses bersama yang menyalurkan output ke dalam $0 or adalah,
seperti di atas, dan RT. Co-proses adalah melongo perpanjangan. (Command bisa
juga menjadi soket. Lihat subbagian Khusus File nama, di bawah.)

berikutnya Berhenti memproses catatan input saat ini. Catatan masukan berikutnya adalah
membaca dan memproses dimulai kembali dengan pola pertama di AWK
program. Setelah mencapai akhir data input, melongo mengeksekusi apapun
AKHIR aturan).

berkas berikutnya Berhenti memproses file input saat ini. Catatan input berikutnya dibaca
berasal dari file input berikutnya. NAMA FILE dan ARGIND diperbarui,
FNR diatur ulang ke 1, dan pemrosesan dimulai kembali dengan pola pertama
dalam program AWK. Setelah mencapai akhir data input, melongo
mengeksekusi apapun AKHIR aturan).

mencetak Cetak catatan saat ini. Catatan keluaran diakhiri dengan
nilai ORS.

mencetak daftar-exp Ekspresi cetak. Setiap ekspresi dipisahkan oleh nilai
FSO. Catatan keluaran diakhiri dengan nilai ORS.

mencetak daftar-exp >fillet Cetak ekspresi aktif fillet. Setiap ekspresi dipisahkan oleh
nilai FSO. Catatan keluaran diakhiri dengan nilai
ORS.

Printf baiklah, daftar-exp Memformat dan mencetak. Lihat Grafik Printf Pernyataan, Di bawah ini.

Printf baiklah, daftar-exp >fillet
Format dan cetak pada fillet.

sistem(baris cmd) Jalankan perintah baris cmd, dan mengembalikan status keluar. (Ini mungkin
tidak tersedia pada sistem non-POSIX.)

halus([fillet]) Siram semua buffer yang terkait dengan file atau pipa keluaran terbuka fillet.
If fillet tidak ada atau jika itu adalah string nol, maka siram semua terbuka
file keluaran dan pipa.

Pengalihan output tambahan diperbolehkan untuk mencetak dan Printf.

mencetak ... >> fillet
Menambahkan output ke fillet.

mencetak ... | Command
Menulis di pipa.

mencetak ... |& Command
Mengirim data ke co-process atau socket. (Lihat juga subbagian Khusus File nama,
di bawah.)

Grafik getline perintah mengembalikan 1 pada keberhasilan, 0 pada akhir file, dan -1 pada kesalahan. Setelah
kesalahan, ERNO diatur ke string yang menjelaskan masalah.

CATATAN: Kegagalan dalam membuka soket dua arah menghasilkan kesalahan non-fatal yang dikembalikan ke
fungsi panggilan. Jika menggunakan pipa, co-proses, atau soket untuk getline, Atau dari mencetak or
Printf dalam satu lingkaran, Anda harus menggunakan Menutup() untuk membuat instance baru dari perintah atau
stopkontak. AWK tidak secara otomatis menutup pipa, soket, atau proses bersama saat mereka kembali
EOF.

Grafik Printf Pernyataan
Versi AWK dari Printf pernyataan dan lari cepat() fungsi (lihat di bawah) menerima
format spesifikasi konversi berikut:

%c Satu karakter. Jika argumen yang digunakan untuk %c adalah numerik, diperlakukan sebagai
karakter dan dicetak. Jika tidak, argumen dianggap sebagai string, dan
hanya karakter pertama dari string yang dicetak.

%d, %i Bilangan desimal (bagian bilangan bulat).

%e, %E Angka floating point dari bentuk [-]d.DDDDDDe[+-]dd. itu %E penggunaan format E
alih-alih e.

%f, %F Angka floating point dari bentuk [-]ddd.DDDDDD. Jika perpustakaan sistem mendukung
saya t, %F tersedia juga. Ini seperti %f, tetapi menggunakan huruf kapital untuk spesial
nilai "bukan angka" dan "tak terhingga". Jika %F tidak tersedia, melongo kegunaan %f.

%g, %G penggunaan %e or %f konversi, mana yang lebih pendek, dengan nol yang tidak signifikan
tertindas. NS %G penggunaan format %E alih-alih %e.

%o Bilangan oktal tidak bertanda (juga bilangan bulat).

%u Angka desimal yang tidak bertanda (sekali lagi, bilangan bulat).

%s Sebuah string karakter.

%x, %X Bilangan heksadesimal tidak bertanda (bilangan bulat). NS %X penggunaan format ABCDEF alih-alih
abcdef.

%% Tunggal % karakter; tidak ada argumen yang dikonversi.

Opsional, parameter tambahan mungkin terletak di antara % dan surat kendali:

menghitung$ Gunakan menghitung'th argumen pada saat ini dalam format. Ini disebut
posisi penentu dan dimaksudkan terutama untuk digunakan dalam versi terjemahan dari
format string, bukan dalam teks asli program AWK. Ini adalah sebuah melongo
perpanjangan.

- Ekspresi harus rata kiri di dalam bidangnya.

ruang Untuk konversi numerik, awali nilai positif dengan spasi, dan nilai negatif
dengan tanda minus.

+ Tanda plus, digunakan sebelum pengubah lebar (lihat di bawah), mengatakan untuk selalu menyediakan a
tanda untuk konversi numerik, bahkan jika data yang akan diformat adalah positif. Itu +
menimpa pengubah ruang.

# Gunakan "bentuk alternatif" untuk huruf kontrol tertentu. Untuk %o, menyediakan terkemuka
nol. Untuk %x, dan %X, menyediakan terkemuka 0x or 0X untuk hasil yang bukan nol. Untuk %e, %E,
%f dan %F, hasilnya selalu berisi titik desimal. Untuk %g, dan %G, tertinggal
nol tidak dihapus dari hasil.

0 Terkemuka 0 (nol) bertindak sebagai bendera, yang menunjukkan keluaran harus diisi dengan
nol bukannya spasi. Ini hanya berlaku untuk format output numerik. Ini
bendera hanya berpengaruh ketika lebar bidang lebih lebar dari nilai yang akan dicetak.

' Karakter kutipan tunggal menginstruksikan melongo untuk memasukkan pemisah ribuan lokal
karakter menjadi angka desimal, dan juga menggunakan titik desimal lokal
karakter dengan format floating point. Ini membutuhkan dukungan lokal yang benar di
C library dan dalam definisi lokal saat ini.

lebar Bidang harus diisi dengan lebar ini. Lapangan biasanya diisi dengan
spasi. Dengan 0 bendera, itu diisi dengan nol.

.sebelum Angka yang menentukan presisi yang akan digunakan saat mencetak. Untuk %e, %E, %f dan
%F, format, ini menentukan jumlah digit yang ingin Anda cetak di sebelah kanan
titik desimal. Untuk %g, dan %G format, itu menentukan jumlah maksimum
angka penting. Untuk %d, %i, %o, %u, %x, dan %X format, itu menentukan
jumlah digit minimum untuk dicetak. Untuk %s, itu menentukan jumlah maksimum
karakter dari string yang harus dicetak.

Dinamis lebar dan sebelum kemampuan ISO C cetakf() rutinitas didukung. SEBUAH *
menggantikan keduanya lebar or sebelum spesifikasi menyebabkan nilainya diambil dari
daftar argumen untuk Printf or lari cepat(). Untuk menggunakan penentu posisi dengan dinamis
lebar atau presisi, berikan menghitung$ setelah * dalam format string. Sebagai contoh,
"%3$*2$.*1$s".

Khusus File nama
Saat melakukan pengalihan I/O dari keduanya mencetak or Printf ke dalam file, atau melalui getline dari
file, melongo mengenali nama file khusus tertentu secara internal. Nama file ini memungkinkan akses
untuk membuka deskriptor file yang diwarisi dari melongoproses induknya (biasanya shell). Ini
nama file juga dapat digunakan pada baris perintah untuk memberi nama file data. Nama filenya adalah:

- Masukan standar.

/dev/stdin Masukan standar.

/dev/stdout Keluaran standar.

/dev/stderr Keluaran kesalahan standar.

/dev/fd/n File yang terkait dengan deskriptor file terbuka n.

Ini sangat berguna untuk pesan kesalahan. Sebagai contoh:

mencetak "Anda meniup dia!" > "/dev/stderr"

sedangkan Anda sebaliknya harus menggunakan

mencetak "Anda meniup dia!" | "kucing 1>&2"

Nama file khusus berikut dapat digunakan dengan: |& operator proses bersama untuk membuat
Koneksi jaringan TCP/IP:

/inet/tcp/pelabuhan/hantu/laporkan
/inet4/tcp/pelabuhan/hantu/laporkan
/inet6/tcp/pelabuhan/hantu/laporkan
File untuk koneksi TCP/IP di port lokal pelabuhan ke host jarak jauh hantu pada jarak jauh
pelabuhan laporkan. Gunakan port 0 agar sistem memilih port. Menggunakan /inet4 untuk memaksa
koneksi IPv4, dan /inet6 untuk memaksa koneksi IPv6. Polos /inet menggunakan
default sistem (kemungkinan besar IPv4).

/inet/udp/pelabuhan/hantu/laporkan
/inet4/udp/pelabuhan/hantu/laporkan
/inet6/udp/pelabuhan/hantu/laporkan
Serupa, tetapi gunakan UDP/IP alih-alih TCP/IP.

Numeric Fungsi
AWK memiliki fungsi aritmatika bawaan berikut:

atan2(y, x) Kembalikan busur dari y / x dalam radian.

cos (cepat) Kembalikan kosinus dari cepat, yang dalam radian.

exp (cepat) Fungsi eksponensial.

int (cepat) Potong ke bilangan bulat.

catatan(cepat) Fungsi logaritma natural.

acak() Kembalikan nomor acak N, antara 0 dan 1, sehingga 0 N <1.

dosa(cepat) Kembalikan sinus dari cepat, yang dalam radian.

persegi(cepat) Kembalikan akar kuadrat dari cepat.

pasir([cepat]) penggunaan cepat sebagai benih baru untuk generator nomor acak. Jika tidak cepat is
disediakan, gunakan waktu dalam sehari. Kembalikan benih sebelumnya secara acak
pembuat nomor.

Tali Fungsi
Melongo memiliki fungsi string bawaan berikut:

bermacam-macam (s [, d [, bagaimana] ]) Kembalikan jumlah elemen dalam array sumber s. Urutkan
Isi dari s menggunakan melongoaturan normal untuk membandingkan nilai, dan
ganti indeks dari nilai yang diurutkan s dengan berurutan
bilangan bulat dimulai dengan 1. Jika array tujuan opsional d is
ditentukan, duplikat pertama s ke d, lalu urutkan d, meninggalkan
indeks dari array sumber s tidak berubah. String opsional bagaimana
mengontrol arah dan mode perbandingan. Nilai yang valid untuk
bagaimana apakah ada string yang valid untuk PROCINFO["diurutkan_dalam"]. Itu
juga bisa menjadi nama fungsi perbandingan yang ditentukan pengguna sebagai
dijelaskan dalam PROCINFO["diurutkan_dalam"].

bermacam-macam (s [, d [, bagaimana] ])
Kembalikan jumlah elemen dalam array sumber s. Perilaku
sama dengan bermacam-macam(), kecuali bahwa array indeks adalah
digunakan untuk menyortir, bukan nilai array. Setelah selesai, arraynya adalah
diindeks secara numerik, dan nilainya adalah yang asli
indeks. Nilai asli hilang; jadi berikan waktu sebentar
array jika Anda ingin mempertahankan yang asli. Tujuan dari
string opsional bagaimana adalah sama seperti yang dijelaskan dalam bermacam-macam() atas.

gensub(r, s, h [, t]) Cari string target t untuk kecocokan ekspresi reguler
r. Jika h adalah string yang dimulai dengan g or G, lalu ganti semua
pertandingan dari r dengan s. Jika tidak, h adalah angka yang menunjukkan
pertandingan dari r untuk menggantikan. Jika t tidak disediakan, gunakan $0 sebagai gantinya.
Di dalam teks pengganti s, urutannya \n, Di mana n adalah angka
dari 1 hingga 9, dapat digunakan untuk menunjukkan hanya teks yang cocok
itu nsubekspresi yang dikurung. Urutannya \0 merupakan
seluruh teks yang cocok, seperti halnya karakter &. Tidak seperti sub()
dan gsub(), string yang dimodifikasi dikembalikan sebagai hasil dari
fungsi, dan string target aslinya adalah tidak berubah.

gsub(r, s [, t]) Untuk setiap substring yang cocok dengan ekspresi reguler r dalam tali
t, ganti string s, dan mengembalikan jumlah
substitusi. Jika t tidak disediakan, gunakan $0. Sebuah & dalam
teks pengganti diganti dengan teks yang sebenarnya
cocok. Menggunakan \& untuk mendapatkan literal &. (Ini harus diketik sebagai
"\\&"; Lihat MELONGO: Efektif AWK Pemrograman untuk diskusi lebih lengkap
aturan untuk &'s dan garis miring terbalik dalam teks pengganti
sub(), gsub(), dan gensub().)

indeks(s, t) Kembalikan indeks string t dalam tali s, atau 0 jika t tidak
hadiah. (Ini menyiratkan bahwa indeks karakter dimulai dari satu.) It
adalah kesalahan fatal untuk menggunakan konstanta regexp untuk t.

panjangnya([s]) Kembalikan panjang string s, atau panjang $0 if s tidak
dipasok. Sebagai ekstensi non-standar, dengan argumen array,
panjang() mengembalikan jumlah elemen dalam array.

cocok(s, r [, a]) Kembalikan posisi di s di mana ekspresi reguler r terjadi, atau
0 jika r tidak ada, dan tetapkan nilai MULAI dan PANJANG.
Perhatikan bahwa urutan argumennya sama dengan untuk ~ operator:
str ~ re. Jika array a disediakan, a dihapus dan kemudian elemen
1 hingga n diisi dengan bagian s yang cocok dengan
subekspresi kurung yang sesuai di r. Elemen ke-0
of a berisi bagian dari s dicocokkan oleh seluruh reguler
ekspresi r. Subskrip a[n, "Mulailah"], dan a[n, "panjang"]
memberikan indeks awal dalam string dan panjang masing-masing,
dari setiap substring yang cocok.

membagi (s, a [, r [, sep] ])
Pisahkan talinya s ke dalam array a dan larik pemisah sep
pada ekspresi reguler r, dan mengembalikan jumlah bidang.
Nilai elemen adalah bagian dari s yang cocok r. Nilai dari
sep[i] adalah pemisah yang muncul di depan a[i+1]. Jika r
dihilangkan, FPAT digunakan sebagai gantinya. Array a dan sep adalah
dibersihkan terlebih dahulu. Pemisahan berperilaku identik dengan pemisahan bidang
dengan FPAT, dijelaskan di atas.

membelah(s, a [, r [, sep] ])
Pisahkan talinya s ke dalam array a dan larik pemisah sep
pada ekspresi reguler r, dan mengembalikan jumlah bidang. Jika
r dihilangkan, FS digunakan sebagai gantinya. Array a dan sep adalah
dibersihkan terlebih dahulu. sep[i] adalah pemisah bidang yang cocok dengan r
antara a[i] dan a[i+1]. Jika r adalah satu spasi, maka memimpin
spasi di s masuk ke elemen array ekstra sep[0] dan
spasi spasi tambahan masuk ke elemen array ekstra sep[n],
dimana n adalah nilai balik dari membelah(s, a, r, sep). Pemisahan
berperilaku identik dengan pemisahan bidang, dijelaskan di atas.

sprintf (fmt, daftar-exp) Mencetak daftar-exp Menurut fmt, dan kembalikan string yang dihasilkan.

strtonum (str) Memeriksa str, dan mengembalikan nilai numeriknya. Jika str dimulai dengan a
terkemuka 0, memperlakukannya sebagai bilangan oktal. Jika str dimulai dengan a
terkemuka 0x or 0X, perlakukan sebagai bilangan heksadesimal. Jika tidak,
anggap saja itu bilangan desimal.

sub(r, s [, t]) Sama seperti gsub(), tetapi ganti hanya substring pertama yang cocok.

substr(s, i [, n]) Kembalikan paling banyak n-substring karakter dari s mulai dari i. Jika n
dihilangkan, gunakan sisa s.

lebih rendah (str) Kembalikan salinan string str, dengan semua karakter huruf besar
in str diterjemahkan ke dalam huruf kecil yang sesuai.
Karakter non-abjad dibiarkan tidak berubah.

puncak(str) Kembalikan salinan string str, dengan semua karakter huruf kecil
in str diterjemahkan ke rekan-rekan mereka yang sesuai huruf besar.
Karakter non-abjad dibiarkan tidak berubah.

Melongo multibyte sadar. Ini berarti bahwa indeks(), panjang(), substr() dan cocok() semua pekerjaan
dalam hal karakter, bukan byte.

Waktu Fungsi
Karena salah satu kegunaan utama program AWK adalah memproses file log yang berisi waktu
informasi stempel, melongo menyediakan fungsi berikut untuk mendapatkan stempel waktu dan
memformat mereka.

waktu mk(spesifikasi tanggal)
Mengubah spesifikasi tanggal ke dalam stempel waktu dengan bentuk yang sama seperti yang dikembalikan oleh sistem(), dan
mengembalikan hasilnya. Itu spesifikasi tanggal adalah string dari bentuk YYYY MM DD HH MM SS[
DST]. Isi string adalah enam atau tujuh angka yang mewakili
masing-masing tahun penuh termasuk abad, bulan dari 1 hingga 12, hari
bulan dari 1 hingga 31, jam dalam sehari dari 0 hingga 23, menit dari 0 hingga
59, yang kedua dari 0 hingga 60, dan bendera musim panas opsional. Nilai
dari angka-angka ini tidak perlu berada dalam kisaran yang ditentukan; misalnya satu jam
dari -1 berarti 1 jam sebelum tengah malam. Kalender Gregorian asal-nol adalah
diasumsikan, dengan tahun 0 sebelum tahun 1 dan tahun -1 sebelum tahun 0. Waktunya adalah
diasumsikan dalam zona waktu lokal. Jika bendera daylight saving positif,
waktu diasumsikan sebagai waktu musim panas; jika nol, waktu dianggap
menjadi waktu standar; dan jika negatif (default), waktu mk() upaya untuk menentukan
apakah waktu musim panas berlaku untuk waktu yang ditentukan. Jika spesifikasi tanggal
tidak mengandung cukup elemen atau jika waktu yang dihasilkan di luar jangkauan,
waktu mk() mengembalikan -1.

waktu-waktu([format [, timestamp[, utc-bendera]]])
dibentuk timestamp sesuai dengan spesifikasi di format. Jika utc-bendera is
hadir dan bukan nol atau bukan nol, hasilnya dalam UTC, jika tidak hasilnya
adalah dalam waktu setempat. Itu timestamp harus dalam bentuk yang sama seperti yang dikembalikan oleh
sistem(). Jika timestamp hilang, waktu saat ini digunakan. Jika format
tidak ada, format default yang setara dengan output dari tanggal(1) digunakan. Itu
format default tersedia di PROCINFO["waktu-waktu"]. Lihat spesifikasi untuk
itu waktu-waktu() fungsi dalam ISO C untuk konversi format yang dijamin
untuk tersedia.

sistem() Kembalikan waktu saat ini sebagai jumlah detik sejak Epoch
(1970-01-01 00:00:00 UTC pada sistem POSIX).

Bit Manipulasi Fungsi
Melongo memasok fungsi manipulasi bit berikut. Mereka bekerja dengan mengubah double-
nilai floating point presisi ke uintmax_t bilangan bulat, melakukan operasi, dan kemudian
mengubah hasilnya kembali ke floating point. Fungsinya adalah:

dan(v1, v2 [, ...]) Kembalikan bitwise AND dari nilai yang disediakan dalam daftar argumen.
Setidaknya harus ada dua.

lengkap(val) Kembalikan komplemen bitwise dari val.

pergeseran(val, menghitung) Mengembalikan nilai val, digeser ke kiri oleh menghitung bit.

atau(v1, v2 [, ...]) Kembalikan bitwise OR dari nilai yang disediakan dalam daftar argumen.
Setidaknya harus ada dua.

pergeseran(val, menghitung) Mengembalikan nilai val, digeser ke kanan oleh menghitung bit.

xor(v1, v2 [, ...]) Kembalikan XOR bitwise dari nilai yang disediakan dalam daftar argumen.
Setidaknya harus ada dua.

Tipe fungsi
Fungsi berikut ini untuk digunakan dengan array multidimensi.

isar (x)
Kembali benar jika x adalah array, false jika tidak.

Internasionalisasi Fungsi
Fungsi berikut dapat digunakan dari dalam program AWK Anda untuk menerjemahkan string:
pada saat dijalankan. Untuk detail lengkapnya, lihat MELONGO: Efektif AWK Pemrograman.

ikatdomainteks(direktori [, domain])
Tentukan direktori di mana melongo mencari .gmo file, jika tidak atau
tidak dapat ditempatkan di lokasi ``standar'' (misalnya, selama pengujian). Ini kembali
direktori dimana domain adalah ``terikat.''
Defaultnya domain adalah nilai dari DOMAIN TEKS. Jika direktori adalah string nol
(""), kemudian ikatdomainteks() mengembalikan pengikatan saat ini untuk yang diberikan domain.

dcgetteks(tali [, domain [, kategori]])
Kembalikan terjemahan dari tali dalam domain teks domain untuk kategori lokal
kategori. Nilai default untuk domain adalah nilai saat ini dari DOMAIN TEKS. itu
nilai default untuk kategori is "LC_MESSAGES".
Jika Anda memberikan nilai untuk kategori, itu harus berupa string yang sama dengan salah satu yang diketahui
kategori lokal dijelaskan dalam MELONGO: Efektif AWK Pemrograman. Anda juga harus
menyediakan domain teks. Menggunakan DOMAIN TEKS jika Anda ingin menggunakan domain saat ini.

dcngettext(string1, string2, jumlah [, domain [, kategori]])
Kembalikan bentuk jamak yang digunakan untuk jumlah dari terjemahan string1 dan string2 in
domain teks domain untuk kategori lokal kategori. Nilai default untuk domain is
nilai saat ini dari DOMAIN TEKS. Nilai default untuk kategori is "LC_MESSAGES".
Jika Anda memberikan nilai untuk kategori, itu harus berupa string yang sama dengan salah satu yang diketahui
kategori lokal dijelaskan dalam MELONGO: Efektif AWK Pemrograman. Anda juga harus
menyediakan domain teks. Menggunakan DOMAIN TEKS jika Anda ingin menggunakan domain saat ini.

DITETAPKAN PENGGUNA FUNGSI


Fungsi dalam AWK didefinisikan sebagai berikut:

fungsi nama(parameter daftar) { Laporan }

Fungsi dieksekusi ketika dipanggil dari dalam ekspresi baik dalam pola atau
tindakan. Parameter aktual yang disediakan dalam pemanggilan fungsi digunakan untuk membuat instance
parameter formal yang dideklarasikan dalam fungsi. Array dilewatkan dengan referensi, lainnya
variabel dilewatkan oleh nilai.

Karena fungsi awalnya bukan bagian dari bahasa AWK, ketentuan untuk local
variabel agak canggung: Mereka dinyatakan sebagai parameter tambahan dalam daftar parameter.
Konvensinya adalah untuk memisahkan variabel lokal dari parameter nyata dengan spasi tambahan di
daftar parameter. Sebagai contoh:

fungsi f(hal, q, a, b) # a dan b adalah lokal
{
...
}

/abc/ { ... ; f(1, 2) ; ... }

Tanda kurung kiri dalam panggilan fungsi diperlukan untuk segera mengikuti fungsi
nama, tanpa spasi putih yang mengganggu. Ini menghindari ambiguitas sintaksis dengan
operator gabungan. Pembatasan ini tidak berlaku untuk fungsi bawaan yang terdaftar
atas.

Fungsi dapat memanggil satu sama lain dan mungkin rekursif. Parameter fungsi yang digunakan sebagai lokal
variabel diinisialisasi ke string nol dan angka nol pada pemanggilan fungsi.

penggunaan kembali cepat untuk mengembalikan nilai dari suatu fungsi. Nilai kembalian tidak terdefinisi jika tidak ada
nilai disediakan, atau jika fungsi kembali dengan "jatuh" di akhir.

Sebagai melongo ekstensi, fungsi dapat disebut secara tidak langsung. Untuk melakukan ini, tetapkan nama
fungsi yang akan dipanggil, sebagai string, ke variabel. Kemudian gunakan variabel seolah-olah itu
adalah nama suatu fungsi, diawali dengan an @ tanda, seperti:
fungsi fungsiku()
{
mencetak "fungsiku ditelepon"
...
}

{ ...
the_fungsi = "fungsiku"
@fungsi_fungsi() # panggilan melalui the_fungsi untuk fungsiku
...
}
Pada versi 4.1.2, ini berfungsi dengan fungsi yang ditentukan pengguna, fungsi bawaan, dan
fungsi ekstensi.

If --serat telah di sediakan, melongo memperingatkan tentang panggilan ke fungsi yang tidak ditentukan pada waktu parse,
bukannya pada waktu berjalan. Memanggil fungsi yang tidak ditentukan pada saat run time adalah kesalahan fatal.

kata fungsi dapat digunakan sebagai pengganti fungsi, meskipun ini sudah usang.

SECARA DINAMIS MEMUAT BARU FUNGSI


Anda dapat secara dinamis menambahkan fungsi built-in baru ke running melongo penerjemah dengan
@memuat penyataan. Rincian lengkap berada di luar cakupan halaman manual ini; melihat MELONGO:
Efektif AWK Pemrograman.

SINYAL


Grafik melongo profiler menerima dua sinyal. SIGUSR1 menyebabkannya membuang profil dan fungsi
panggil tumpukan ke file profil, yang mana awkprof.keluar, atau file apa pun bernama
pada pengatur terkenal. Pengatur ini menawarkan bantuan hukum kepada traderapabila trader berselisih dengan broker yang terdaftar dengan mereka. --Profil pilihan. Ia kemudian terus berjalan. MENINDAKLANJUTI penyebab melongo untuk membuang
profil dan tumpukan panggilan fungsi dan kemudian keluar.

PENGINTERNASIONALAN


Konstanta string adalah urutan karakter yang diapit oleh tanda kutip ganda. Dalam bahasa non-Inggris
lingkungan berbicara, dimungkinkan untuk menandai string dalam program AWK sebagai kebutuhan
terjemahan ke bahasa alami setempat. String tersebut ditandai dalam program AWK dengan
garis bawah utama (“_”). Sebagai contoh,

melongo 'MULAI { mencetak "Halo, dunia" }'

selalu mencetak Halo, dunia. Tapi,

melongo 'MULAI { mencetak _"Halo, dunia" }'

mungkin mencetak bonjour, monde di Perancis.

Ada beberapa langkah yang terlibat dalam memproduksi dan menjalankan program AWK yang dapat dilokalkan.

1. Tambahkan MULAI tindakan untuk menetapkan nilai ke DOMAIN TEKS variabel untuk mengatur domain teks
ke nama yang terkait dengan program Anda:

MULAI { DOMAIN TEKS = "prog saya" }

Ini memungkinkan melongo untuk menemukan .gmo file yang terkait dengan program Anda. Tanpa ini
langkah, melongo menggunakan pesan domain teks, yang kemungkinan besar tidak berisi terjemahan
untuk program Anda.

2. Tandai semua string yang harus diterjemahkan dengan garis bawah di depan.

3. Jika perlu, gunakan dcgetteks() dan / atau ikatdomainteks() fungsi dalam program Anda,
sewajarnya.

4. Menjalankan melongo --gen-pot -f prog.awk > prog.pot saya untuk menghasilkan .pot file untuk Anda
program.

5. Berikan terjemahan yang sesuai, dan buat serta instal yang sesuai .gmo file.

Fitur internasionalisasi dijelaskan secara lengkap di MELONGO: Efektif AWK
Pemrograman.

POSIX KOMPATIBILITAS


Tujuan utama untuk melongo adalah kompatibilitas dengan standar POSIX, serta dengan
versi terbaru dari Brian Kernighan Wow. Untuk akhir ini, melongo menggabungkan berikut ini:
fitur yang terlihat oleh pengguna yang tidak dijelaskan dalam buku AWK, tetapi merupakan bagian dari Brian
Versi Kernighan dari Wow, dan berada dalam standar POSIX.

Buku ini menunjukkan bahwa penetapan variabel baris perintah terjadi ketika Wow akan sebaliknya
buka argumen sebagai file, yang setelah MULAI aturan dijalankan. Namun, di
implementasi sebelumnya, ketika tugas seperti itu muncul sebelum nama file apa pun,
penugasan akan terjadi sebelum itu MULAI aturan dijalankan. Aplikasi datang untuk bergantung pada
"fitur" ini. Kapan Wow diubah agar sesuai dengan dokumentasinya, -v pilihan untuk
menetapkan variabel sebelum eksekusi program ditambahkan untuk mengakomodasi aplikasi yang
tergantung pada perilaku lama. (Fitur ini disetujui oleh Bell
Laboratorium dan pengembang GNU.)

Saat memproses argumen, melongo menggunakan opsi khusus "--" untuk menandakan akhir dari
argumen. Dalam mode kompatibilitas, ini memperingatkan tentang tetapi sebaliknya mengabaikan opsi yang tidak ditentukan.
Dalam operasi normal, argumen tersebut diteruskan ke program AWK untuk diproses.

Buku AWK tidak menentukan nilai kembali dari pasir(). Standar POSIX memilikinya
kembalikan benih yang digunakannya, untuk memungkinkan melacak urutan nomor acak.
Oleh karena itu pasir() in melongo juga mengembalikan benihnya saat ini.

Fitur baru lainnya adalah: Penggunaan beberapa -f pilihan (dari MKS Wow); itu MENGEPUNG Himpunan;
itu \a, dan \v urutan pelarian (dilakukan awalnya di melongo dan dimasukkan kembali ke dalam Bell
versi laboratorium); itu lebih rendah() dan puncak() fungsi bawaan (dari Bell
versi laboratorium); dan spesifikasi konversi ISO C di Printf (dilakukan terlebih dahulu dalam
versi Bell Laboratories).

HISTORIS FITUR


Ada satu fitur implementasi AWK historis yang melongo mendukung: Itu mungkin
untuk memanggil panjang() fungsi bawaan tidak hanya tanpa argumen, tetapi bahkan tanpa
tanda kurung! Jadi,

a = panjangnya # Suci sesuatu 60, Batman!

adalah sama dengan salah satu dari

a = panjang()
a = panjang($0)

Menggunakan fitur ini adalah praktik yang buruk, dan melongo mengeluarkan peringatan tentang penggunaannya jika --serat is
ditentukan pada baris perintah.

GNU EKSTENSI


Melongo memiliki terlalu banyak ekstensi ke POSIX Wow. Mereka dijelaskan dalam ini
bagian. Semua ekstensi yang dijelaskan di sini dapat dinonaktifkan dengan menjalankan melongo pada pengatur terkenal. Pengatur ini menawarkan bantuan hukum kepada traderapabila trader berselisih dengan broker yang terdaftar dengan mereka.
--tradisional or --posix Pilihan.

Fitur berikut dari melongo tidak tersedia di POSIX Wow.

· Tidak ada pencarian jalur yang dilakukan untuk file yang dinamai melalui -f pilihan. Oleh karena itu AWKPATH
variabel lingkungan tidak istimewa.

· Tidak ada fasilitas untuk melakukan penyertaan file (melongo's @termasuk mekanisme).

· Tidak ada fasilitas untuk menambahkan fungsi baru secara dinamis yang ditulis dalam C (melongo's @memuat
mekanisme).

· Itu \x urutan pelarian. (Dinonaktifkan dengan --posix.)

· Kemampuan untuk melanjutkan baris setelah ? dan :. (Dinonaktifkan dengan --posix.)

· Konstanta oktal dan heksadesimal dalam program AWK.

· Itu ARGIND, MODE BIN, ERNO, serat, RT dan DOMAIN TEKS variabel tidak istimewa.

· Itu Abaikan variabel dan efek sampingnya tidak tersedia.

· Itu LEBAR LAPANGAN pemisahan bidang variabel dan lebar tetap.

· Itu FPAT variabel dan pemisahan bidang berdasarkan nilai bidang.

· Itu PROCINFO array tidak tersedia.

· Penggunaan RS sebagai ekspresi reguler.

· Nama file khusus yang tersedia untuk pengalihan I/O tidak dikenali.

· Itu |& operator untuk membuat proses bersama.

· Itu AWAL FILE dan FILE AKHIR pola khusus tidak tersedia.

· Kemampuan untuk membagi karakter individu menggunakan string nol sebagai nilai FS,
dan sebagai argumen ketiga untuk membagi().

· Argumen keempat opsional untuk membagi() untuk menerima teks pemisah.

· Argumen kedua opsional untuk Menutup() fungsi.

· Argumen ketiga opsional untuk cocok() fungsi.

· Kemampuan untuk menggunakan penentu posisi dengan Printf dan lari cepat().

· Kemampuan untuk melewatkan array ke panjang().

· Itu dan(), bermacam-macam(), bermacam-macam(), ikatdomainteks(), lengkap(), dcgetteks(), teks dcnget(),
gensub(), pergeseran(), waktu mk(), atau(), pisahkan (), pergeseran(), waktu-waktu(), strtonum(),
sistem() dan xor() fungsi.

· String yang dapat dilokalkan.

Buku AWK tidak menentukan nilai pengembalian dari Menutup() fungsi. Melongo's Menutup()
mengembalikan nilai dari tutup(3), atau tutup(3), saat menutup file atau pipa keluaran,
masing-masing. Ini mengembalikan status keluar proses saat menutup pipa input. Itu
nilai kembalian adalah -1 jika file bernama, pipa, atau proses bersama tidak dibuka dengan a
pengalihan.

Ketika melongo dipanggil dengan --tradisional pilihan, jika fs argumen untuk -F pilihannya adalah
“t”, lalu FS diatur ke karakter tab. Perhatikan bahwa mengetik melongo -F\t ... hanya menyebabkan
shell untuk mengutip "t," dan tidak meneruskan "\t" ke -F pilihan. Karena ini adalah
kasus khusus yang agak jelek, itu bukan perilaku default. Perilaku ini juga tidak
terjadi jika --posix telah ditentukan. Untuk benar-benar mendapatkan karakter tab sebagai bidang
pemisah, yang terbaik adalah menggunakan tanda kutip tunggal: melongo -F'\t' ....

LINGKUNGAN VARIABEL


Grafik AWKPATH variabel lingkungan dapat digunakan untuk menyediakan daftar direktori yang melongo
mencari ketika mencari file bernama melalui -f, --berkas, -i dan --termasuk pilihan. Jika
pencarian awal gagal, jalur dicari lagi setelah menambahkan .wk ke nama file.

Grafik AWKLIBPATH variabel lingkungan dapat digunakan untuk menyediakan daftar direktori yang melongo
mencari ketika mencari file bernama melalui -l dan --memuat Pilihan.

Grafik GAWK_READ_TIMEOUT variabel lingkungan dapat digunakan untuk menentukan batas waktu dalam
milidetik untuk membaca input dari terminal, pipa, atau komunikasi dua arah termasuk
soket.

Untuk koneksi ke host jarak jauh melalui soket, GAWK_SOCK_RETRIES mengontrol jumlah
mencoba lagi, dan GAWK_MSEC_SLEEP dan interval antara percobaan ulang. Intervalnya ada di
milidetik. Pada sistem yang tidak mendukung kamu tidur(3), nilainya dibulatkan menjadi
integral jumlah detik.

If POSIXLY_BENAR ada di lingkungan, maka melongo berperilaku persis seperti jika --posix memiliki
telah ditentukan pada baris perintah. Jika --serat telah ditentukan, melongo mengeluarkan peringatan
pesan untuk efek ini.

EXIT STATUS


Jika keluar pernyataan digunakan dengan nilai, maka melongo keluar dengan nilai numerik yang diberikan
untuk itu.

Jika tidak, jika tidak ada masalah selama eksekusi, melongo keluar dengan nilai C
konstan KELUAR_SUKSES. Ini biasanya nol.

Jika terjadi kesalahan, melongo keluar dengan nilai konstanta C EXIT_FAILURE. Ini
biasanya satu.

If melongo keluar karena kesalahan fatal, status keluarnya adalah 2. Pada sistem non-POSIX, ini
nilai dapat dipetakan ke EXIT_FAILURE.

VERSION INFORMASI


Dokumen halaman manual ini melongo, Versi 4.1.

PENULIS


Versi asli UNIX Wow dirancang dan diimplementasikan oleh Alfred Aho, Peter
Weinberger, dan Brian Kernighan dari Bell Laboratories. Brian Kernighan terus
mempertahankan dan meningkatkannya.

Paul Rubin dan Jay Fenlason, dari Free Software Foundation, menulis melongo, agar kompatibel
dengan versi asli Wow didistribusikan di UNIX Edisi Ketujuh. John Woods
menyumbangkan sejumlah perbaikan bug. David Trueman, dengan kontribusi dari Arnold Robbins,
terbuat melongo kompatibel dengan versi baru UNIX Wow. Arnold Robbins adalah saat ini
pemelihara

Lihat MELONGO: Efektif AWK Pemrograman untuk daftar lengkap kontributor melongo dan perusahaan
dokumentasi.

Lihat README file di melongo distribusi untuk informasi terkini tentang pengelola
dan port mana yang saat ini didukung.

BUG LAPORAN


Jika Anda menemukan bug di melongo, silakan kirim surat elektronik ke [email dilindungi]. Silahkan
sertakan sistem operasi Anda dan revisinya, versi melongo (Dari melongo --Versi: kapan),
kompiler C mana yang Anda gunakan untuk mengompilasinya, dan program pengujian dan data yang sekecil
mungkin untuk mereproduksi masalah.

Sebelum mengirim laporan bug, harap lakukan hal-hal berikut. Pertama, verifikasi bahwa Anda memiliki
versi terbaru dari melongo. Banyak bug (biasanya yang halus) diperbaiki pada setiap rilis,
dan jika milik Anda kedaluwarsa, masalahnya mungkin sudah terpecahkan. Kedua, silakan lihat
jika mengatur variabel lingkungan LC_SEMUA untuk LC_SEMUA=C menyebabkan hal-hal berperilaku seperti Anda
mengharapkan. Jika demikian, ini adalah masalah lokal, dan mungkin atau mungkin bukan bug. Akhirnya, tolong
baca halaman manual ini dan manual referensi dengan hati-hati untuk memastikan bahwa apa yang Anda pikirkan adalah
bug benar-benar, bukan hanya kekhasan dalam bahasa.

Apa pun yang Anda lakukan, lakukan JANGAN posting laporan bug di comp.lang.awk. Sementara melongo pengembang
sesekali membaca newsgroup ini, memposting laporan bug ada cara yang tidak dapat diandalkan untuk melaporkan
bug. Sebagai gantinya, harap gunakan alamat surat elektronik yang diberikan di atas. Betulkah.

Jika Anda menggunakan sistem berbasis GNU/Linux atau BSD, Anda mungkin ingin mengirimkan laporan bug ke
vendor distribusi Anda. Tidak apa-apa, tapi tolong kirimkan salinannya ke petugas
alamat email juga, karena tidak ada jaminan bahwa laporan bug akan diteruskan ke
itu melongo pemelihara

Gunakan gawk online menggunakan layanan onworks.net


Server & Workstation Gratis

Unduh aplikasi Windows & Linux

Perintah Linux

Ad