看看下面的代碼。我的意圖是僅在字母行中設置變量p
。爲什麼用數字行修改p?
awk '/^[A-Z]/{p="$0"; print "set p: " $p}
{print "p: " $p}' <<EOF
A
1
2
3
B
4
5
6
EOF
該程序生成在我的系統下面的輸出:
set p: A
p: A
p: 1
p: 2
p: 3
set p: B
p: B
p: 4
p: 5
p: 6
雖然p
設置僅在字母行,在每行中的值的變化。爲什麼?
投票關閉作爲一個簡單的拼寫錯誤。 – tripleee
你在混合使用shell和awk語法。 Awk不是shell,它是一個完全獨立的工具,具有它自己的語言。閱讀Arnold Robbins編寫的「有效的Awk編程」第4版。 –