2013-01-20 59 views
0

我有一個文本文件中的數據:awk來更新記錄

Customer:HDB:Price:Left:total 
Ted 1:rm4:34:197:101 

我試圖更新左和總數據庫的最新記錄。爲什麼這個表達方式不起作用?

awk -F : -v OFS=: -v customer=$customer-v hdb=$hdb \ 
    -v left=$left -v total=$total \ 
    '$1==customer && $2==hdb {`$4=left $5=total;`}1' file 

回答

1

1)您忘記;這裏:

$4=left; $5=total;

需要在這裏2)空間:

customer=$customer -v

3)``這裏不需要:

{$4=left; $5=total;}

這應該工作:

awk -F : -v OFS=: -v customer="$customer" -v hdb="$hdb" -v left="$left" \ 
    -v total="$total" '$1==customer && $2==hdb { $4=left; $5=total } 1' file 
+0

AWK:無法打開-v(沒有這樣的文件或目錄) 它不佔用空白的客戶?系統將只使用Ted而不使用Ted 1 – user1745860

+0

@ user1745860您應該使用'customer =「$ customer」'變量defenition。 (見編輯答案) –

+0

@ user1745860,這應該是一個單一的行。我編輯了一個觸摸來強調這一點。 –