2016-03-30 21 views
-2

ユーザがidで指定したspcificカラムのデータを、ユーザが再び指定した値に置き換えたいとします。したがって、ユーザーは行のID、列、および列内の置換する値を指定します。カラムをUNIXのawkに置き換えます

私はこのコードを持っている:

awk -v antik1=$1 -v antik2=$2 '{sub(/antik1/,"$antik2") ; print }' 
persons.dat.txt 

をしかし、私はこの

./tool.sh Yang POUTSES 

のようにそれを実行したときに、それは何に

persons.dat.txt与えない:

933|Mahinda|Perera|male|1989-12-03|2010-03-17T13:32:10.447+0000|192.248.2.123|Firefox 
1129|Carmen|Lepland|female|1984-02-18|2010-02-28T04:39:58.781+0000|81.25.252.111|Internet Explorer 
4194|Hồ Chí|Do|male|1988-10-14|2010-03-17T22:46:17.657+0000|103.10.89.118|Internet Explorer 
8333|Chen|Wang|female|1980-02-02|2010-03-15T10:21:43.365+0000|1.4.16.148|Internet Explorer 
8698|Chen|Liu|female|1982-05-29|2010-02-21T08:44:41.479+0000|14.103.81.196|Firefox 
+0

  • riable $シンボルは値によって与えられたフィールド番号(ここでは、「$のCOL」)の値を参照するオペレータのようなものですあなたは一例 – dawg

  • +0

    を供給する場合、これは良い結果を持っていますプログラムは... persons.dat.txtから小さなテキストを追加します – user3453854

    +0

    'awk'文を解読するためにpersons.data.txtの行が1つまたは2つ必要です –

    答えて

    0

    をあなたのコードはあなたのrequirと一致しません全くement:

    は、ユーザーが、私は

    awk -v row=2 -v col=3 -v new_value="Hello World" ' 
        BEGIN { FS = OFS = "|" } 
        NR == row {$col = new_value} 
        {print} 
    ' persons.dat.txt 
    

    注変数の使用と解釈する

    を置き換えるために、行、列、および値のIDを与えますここで:

    • 未修正の変数はCと似ていますが、変数の値に置き換えてください( "行" vaの使用法
    関連する問題