awk如何搭配expr計算同一列的值? - Linux

Table of Contents

假如
test1 0.1 a
test2 0.15 b
test3 0.12 c
在vim底下我要怎麼變成下方這樣
(把第二列的數值都各加0.1上去?)

test1 0.2 a
test2 0.25 b
test3 0.22 c

因為對linux還不夠熟,希望大家能幫助我

--

All Comments

Agatha avatarAgatha2016-04-29
gawk '{ $2 += 0.1; print; }' 然後調 tab/space
Carol avatarCarol2016-05-02
cat data.txt | awk '($2+=0.1)' 不用 print 喔~ ^_^
George avatarGeorge2016-05-03
感謝樓上們的解答,我原本以為要用expr去寫
Heather avatarHeather2016-05-03
在 vim 裡頭執行就可以了 :%!awk '$2+=0.1'
Lauren avatarLauren2016-05-04
要保持原來的空白,用awk -F去界定。預設是一個空白
Kyle avatarKyle2016-05-07
BTW,用 awk 就無需用 cat 了。直接給它檔案。
Sierra Rose avatarSierra Rose2016-05-09
我還以為 AWK 程式一定要包在大括號內
Skylar DavisLinda avatarSkylar DavisLinda2016-05-11
剛試了一下,沒加括號也可以跑
Hedda avatarHedda2016-05-12
action 的部份才要大括號。print 是 action,但它是
預設的動作。
Mason avatarMason2016-05-13
是的... 所以是在條件式偷做運算, 算是偷吃步...
Sarah avatarSarah2016-05-13
這個不是偷吃步喔!那些運是針對 pattern 的部份所
做的修正,和 action 的部份無關。在命令列使用 awk
Sandy avatarSandy2016-05-15
常常會有這種修正,修正後再進入 action。在這個例子
就是修正後,由 print 印出每一行。