Text-Processing
做什麼0=0=0=1 在 awk 中是什麼意思?
假設我有一個這樣的輸入文本文件(sample_simple.txt):
3 1 10 1 6 9 4 2 4 1 9 2 2 2 1
通過使用 command:
awk '$0=$1" "$1*$2" "$3*$4' sample_simple.txt
,我得到以下輸出:3 3 10 9 36 8 9 18 4
然後使用命令:
awk '$1*$2" "$3*$4' sample_simple.txt
,輸入文件沒有任何變化:3 1 10 1 6 9 4 2 4 1 9 2 2 2 1
命令之間的唯一變化是
'$0=$1'
,任何人都可以解釋一下嗎?
不是真的
$0=$1
;想起來更像$0 = ($1" "$1*$2" "$3*$4)
所以
$0=$1" "$1*$2" "$3*$4
將字元串連接的結果分配
$1" "$1*$2" "$3*$4
給變數$0
並執行預設操作{print $0}
,而$1*$2" "$3*$4
連接
$1*$2
and的結果$3*$4
(之間有空格" "
)並執行預設操作{print $0}
,因為結果是非空字元串。的值$0
未修改。
在 awk
$0
是整行- 可以即時更改線路
因此
$1" "$1*$2" "$3*$4
創建 3 個欄位$1
,$1*$2
並且$3*$4
$0=
結果被放入行中,並隱式列印(見編輯)。編輯 :
如果省略
$0=
,則輸出行不會更改。正如 Steeldriver 指出的那樣,由於 search 是肯定的,所以 line 是 printd。