2011-07-25 15 views
0

以下のようなリクエストが1つのファイルにあります。私は "パスワード"の後のデータを "* *"に置き換えたいと思います。私は以下のコマンドを使ってみました。しかし、私はそれをすることができません。それをどのようにすべきか提案することができますか?awk(unix)の***と単語を置き換える方法

要求ファイルには、以下のように含まれています

->->->->->->->-> 07/06/11 13:26:21 cp 2191444 pp 2134056 
qid 2097161 qtyp 1005 
C0dJ 2907100211ADVVM1 00^ZLTBLTBLTB   HSM_S2^^KMKEYTYPE^Y605^^KMKEYDATE^Y01012000^^MEMBERNO^Y^^OCISPTY^Y00 
70002643^^KMIV^Y^^ENCTOKEN^Y^^PASSWORD^Y1152^^CHANCODE^Y003^^SELLGENT^Y004^^SECLVLCD^Y005^^USRSRVDT^Y006^^USRSRVTM 
^Y001^^PWDSRVDT^Y002^^PWDSRVTM^Y010^^PASSEFFDT^Y009^^ 

しかし、パスワード、すなわちchancode後の言葉は一定ではなく、区切り文字でも変更した後があるはずです。

私は、コマンドの下に使用してみました:

awk -F"PASSWORD^" '{f1=$1; f2=$2; sub(substr(f2,1,index(f2,"^")-1),"****",f2); print f1 "PASSWORD^" f2}' 

答えて

1

はあなたがそれぞれのために*例えば\*を脱出しようとしたことがありますか?だから\*\*\*\*

0

プリミティブが、動作します!:

sed -e "s/PASSWORD.*CHANCODE/PASSWORD\*\*\*\*CHANCODE/g" pass.txt 
関連する問題