什麼是從awk輸出中聲明多個變量的更優雅的方式?我有兩個文件是自動生成的。這些文件最多可以有三行。下面是我做了迄今爲止變量聲明的樣本:
$ cat OUTF1.tmp
25 16 8.33 VERY GOOD
12 17 25 OK
$ cat OUTF2.tmp
30 60 15.38 VERY GOOD
TMP1="OUTF1.tmp"
TMP2="OUTF2.tmp"
MATH_101=$(cat $TMP1 | awk 'NR==1{print $1}')
ENGLISH_101=$(cat $TMP1 | awk 'NR==1{print $2}')
SCIENCE_101=$(cat $TMP1 | awk 'NR==1{print $3}')
GRADE_101=$(cat $TMP1 | awk 'NR==1{print $4}')
MATH_102=$(cat $TMP1 | awk 'NR==2{print $1}')
ENGLISH_102=$(cat $TMP1 | awk 'NR==2{print $2}')
SCIENCE102=$(cat $TMP1 | awk 'NR==2{printf $3}')
GRADE102=$(cat $TMP1 | awk 'NR==2{print $4}')
MATH_201=$(cat $TMP2 | awk 'NR==1{print $1}')
ENGLISH_201=$(cat $TMP2 | awk 'NR==1{print $2}')
SCIENCE_201=$(cat $TMP2 | awk 'NR==1{printf $3}')
GRADE_201=$(cat $TMP2 | awk 'NR==1{print $4}')
等等...
變量內容應該再是:
- MATH_101 = 25
- MATH_102 = 12
- ENGLISH_101 = 16
- ENGLISH_102 = 17
- 等
是否有更好的方法比硬編碼這些變量?
世界你爲什麼要使用這個'awk'呢? –
順便說一句,所有大寫變量實際上是不好的形式。見http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap08.html - 全部大寫名稱用於與意義的操作系統或shell變量;應用程序定義的變量應該是小寫的,這保證了它們不會發生衝突。 –
另外,文件似乎有4行 –