for ((int i="$4"; i<"$5"; i++))
do
awk "NR==i{print}" $1
done
我想AWK打印出$ 4和5 $的記錄(itll是一個範圍,即4-9)語法錯誤(錯誤標記是 「I = 2」)
找不出爲什麼我得到這個錯誤?
Syntax error in expression (error token is "i=2")
for ((int i="$4"; i<"$5"; i++))
do
awk "NR==i{print}" $1
done
我想AWK打印出$ 4和5 $的記錄(itll是一個範圍,即4-9)語法錯誤(錯誤標記是 「I = 2」)
找不出爲什麼我得到這個錯誤?
Syntax error in expression (error token is "i=2")
awk
不知道shell變量i
什麼,一開始,爲什麼你剛纔不使用:
awk "(NR >= $4) && (NR <= $5) {print}" $1
外殼本身應該擴大$
變量,因爲他們是在雙引號內,而比單引號(當然這取決於外殼,但涵蓋了最受歡迎的引腳,主要爲bash
)。
====
pax$ cat infile
..1
..2
..3
..4
..5
..6
..7
..8
..9
====
pax$ cat qq.sh
#!/usr/bin/bash
awk "(NR >= $4) && (NR <= $5) {print}" $1
====
pax$ ./qq.sh infile junk junk 2 5
..2
..3
..4
..5
====
pax$ _
這不是C.你不需要聲明計數器的類型。
這裏正確的語法:
for (( i = $2 ; i <= $3; i++ ))
do
awk "NR==$i{print}" $1
done
您可以在下面的成績單行動看到這