Saya sepertinya tidak bisa mendapatkan perintah awk untuk mendapatkan kolom data kedua.
Kode Bash:
filter_data=$(awk "{if(/$filter:/) print $2}" < scanresults_temp.txt)
printf "$filter_data \n"
Variabel $ filter adalah nilai Unduh atau Unggah yang diteruskan ke skrip shell. Jadi awk menggunakan istilah Unduh atau Unggah untuk mencari baris yang tepat.
Isi file adalah:
Testing download speed................................................................................
Download: 51.13 Mbit/s
Testing upload speed................................................................................................
Upload: 57.38 Mbit/s
Saya mencoba mendapatkan hanya angka dan bukan yang lain, ex, 51.13
dan 57.38
.
awk
'sprintf
Jawaban:
Anda perlu menggunakan tanda kutip tunggal untuk badan program awk sehingga variabel awk tidak diperluas oleh shell. Inilah cara Anda harus meneruskan variabel shell ke awk:
sumber
Cara alternatif adalah membiarkan shell memasukkan variabel ke
awk
lingkungan melalui penugasan yang dilanjutkan (sementara):Perhatikan bahwa mengutip variabel tidak diperlukan saat melakukan tugas di shell
sumber