我收到了一個關於如何從bash中的文本文檔中的行更新特定列值的問題。 到目前爲止,我這樣做: 在這種情況下,我試圖從一個特定的帳戶號碼更新行中的第4列。取當前值,與用戶插入的新值相加,然後用結果替換當前值。從bash中的文本文檔中替換/更新列值
用兩個變量$ 1打開腳本,保留我要查找的帳戶,而$ 2是文件名。
文本文件有這樣的信息:
11101 : CAJA GENERAL : 111 : 0
11102 : CAJA CHICA : 111 : 0
112 : BANCOS : 11 : 0
11201 : CUENTAS CORRIENTES : 112 : 0
1120101 : Banco Agrícola S.A. : 11201 : 20
1120102 : Banco Hipotecario S.A. : 11201 : 0
11202 : CUENTAS DE AHORRO : 112 : 0
1120201 : Banco Agrícola S.A. : 11202 : 0
我使用此代碼來找到正確的行和分配電流值到變量「行爲」,並與其他新的價值
read -p "Inserte monto" insert
act=$(grep -w "^$1" $2 | cut -d":" -f4)
vare=$(($act + $insert))
總IT
但是,然後我需要把這個新的值,以確切的列/行我拿了原來的價值。
我該如何做到這一點?我從一天的旅行中精疲力盡,現在我想完成這個並且去睡覺。任何人都可以給我一個想法或解決方案?我非常感謝現在的任何幫助。
編輯: 好..我去,並嘗試AWK。 發現這「替換爲」文本
awk -F':' -vOFS=' ' '{ $4 = "$vare"}1'
到目前爲止......一旦我進入這一行的腳本執行停止..或者我不知道是什麼,但它不會繼續下去了,也沒有顯示任何錯誤。 我做錯了什麼?編輯2: 預期輸入。 成功更新後,我希望所選帳戶在我的目錄中的現有文檔中具有更新後的值,到目前爲止,解決方案允許我在終端中查看更新,但是原始文檔是我需要查看更改的那個文檔。感謝埃德莫頓的小費
我建議看看'awk'。 – Cyrus
我認爲你應該提供一個文件到你的awk行......它沒有定義什麼「awk」 –
[編輯]你的問題包括給定的輸入的預期輸出。 –