END {
file = "a.txt"
system(cat file)
}
Saya ingin melakukan sesuatu seperti itu? (buka file yang namanya ada di variabel awk).
Bagaimana caranya?
Jawaban yang Diterima:
Masalahnya adalah system() meneruskan baris perintah ke shell, jadi dalam kasus umum, Anda harus keluar dari semua karakter khusus shell dalam nama file.
awk memiliki larik asosiatif ENVIRON yang dipetakan ke lingkungan yang diterimanya, tetapi sayangnya, menetapkannya tidak memengaruhi lingkungan dari perintah yang dijalankan melalui system
atau getline
awk -v q="'" '
function escape(str) {
gsub(q, q "\" q q, str)
return q str q
}
BEGIN {
file = "a.txt"
system("cat " escape(file))
}'
Tentu saja, jika file tersebut adalah “a.txt” atau Anda dapat memastikan bahwa jalurnya tidak akan pernah berisi karakter khusus shell, Anda dapat melakukannya dengan:
system("cat " file)
Jika Anda dapat memastikan bahwa itu tidak mengandung karakter kutipan tunggal, Anda dapat melakukan:
system("cat '''" file "'''")
Ssh:"kesalahan Membaca Panjang Respons Dari Soket Otentikasi"?
Bagaimana Mengatur Pemantauan Layanan yang Tepat Dengan Cara Otomatis? Sehingga Jika Satu Crash It Auto On The Fly Restart?