bashのテキスト文書の行から特定の列の値を更新するにはどうすればよいですか? これまでのところ、私はこれを行います: この場合、特定の口座番号から行の4番目の列を更新しようとしています。現在の値を取って、ユーザーが挿入した新しい値と合計し、その現在の値を結果と置き換えます。bashのテキスト文書の列の値を置換/更新する
2つの変数$ 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
は、私が正しい行を検索し、VAR「行動」への現在の値を割り当て、別の新しい価値
read -p "Inserte monto" insert
act=$(grep -w "^$1" $2 | cut -d":" -f4)
vare=$(($act + $insert))
でそれを集約するために、このコードを使用します。
テキストドキュメントは、このような情報を持っています
しかし、私は元の値を取った正確な列/行にこの新しい値を配置する必要があります。
正確にはどうすればよいですか?私は旅行の長い一日からかなり疲れています。そして今、私はこれを終えてベッドに行きたいです。誰でも私にアイデアや解決策を与えることができますか?私は本当に助けて頂ければ幸いです。
EDIT: オクラホマAWKに行きました。私は、スクリプトの実行が停止し、その行を入力してください。..または私は知っているけど、それはもう続かない、また任意のエラーを示していけたら、これまでのところ、テキスト
awk -F':' -vOFS=' ' '{ $4 = "$vare"}1'
を「置き換え」には、この...見つかり 。 何か間違っていますか?
EDIT 2: 予想される入力。 更新が成功した後、選択したアカウントに、ディレクトリ内の既存のドキュメントに更新された値を持たせたいと考えています。これまでの解決策では端末内の更新を見ることができましたが、あなたがSEDでそれを行うことができ、先端
私は 'awk'を見てみることをお勧めします。 – Cyrus
私はあなたのawk行にファイルを提供すべきだと思います... "awk"に何が定義されていないのですか? –
あなたの質問は、 –