Anda telah mengacaukan kutipan dan sintaksis Anda. Untuk mengatur pemisah bidang input, cara termudah untuk melakukannya adalah dengan -F
opsi pada baris perintah:
awk -F '[0-9]' '{ print $1 }'
atau
awk -F '[[:digit:]]' '{ print $1 }'
Ini akan menggunakan digit apa pun sebagai pemisah bidang input, dan kemudian menampilkan bidang pertama dari setiap baris.
The [0-9]
dan [[:digit:]]
ekspresi tidak cukup sama, tergantung pada lokasi Anda. Lihat " Perbedaan antara [0-9], [[: digit:]] dan \ d ".
Satu juga bisa diatur FS
dalam awk
program itu sendiri. Ini biasanya dilakukan dalam satu BEGIN
blok karena ini merupakan inisialisasi satu kali:
awk 'BEGIN { FS = "[0-9]" } { print $1 }'
Perhatikan bahwa tanda kutip tunggal tidak dapat digunakan dalam string tanda kutip tunggal dalam shell, dan awk
string selalu menggunakan tanda kutip ganda.