GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana Cara Cat File Dari Awk?

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 "'''")

Linux
  1. Bagaimana Cara Menghapus Bom Dari File Utf-8?

  2. Bagaimana Cara Membaca Variabel Dari File?

  3. Cara memasang dan memasang sistem file di Linux

  1. Bagaimana cara menghapus baris baru dari file teks?

  2. Bagaimana cara menggabungkan dua file menggunakan AWK?

  3. Bagaimana install -c berbeda dari cp

  1. Awk Dari Baris Yang Berbeda?

  2. Cara Membuat dan Query Sistem File BTRFS

  3. Bagaimana cara mengubah teks tertentu dari daftar menjadi huruf besar?