0

vi、awk、sedなどのツールを使用して、特定の正規表現に一致するファイル内の単語に引用符を追加したいと考えています。ファイルにはこのような行がたくさん含まれています。

たとえば、次の行を見てください::

'SellerName',2013-08-20 17:19:49,71.185.24.60,-8523106007192903367,5526150741,1,null,25d20a500342-653AC57AF9E6401B,16,2574455867,product description,-8574103407192903368,353860,_,null,-1

71.185.24.60IP ( ) とセッション ID ( )を一重引用符で囲みたいと思います25d20a500342-653AC57AF9E6401B

awk、sed、vi を調べましたが、一致するパターンを置換に挿入する方法が見つかりませんでした。

何かいい方法があれば教えてください。

4

2 に答える 2

2

これは、awk を使用すると非常に簡単です。

awk '{ $3 = q $3 q; $8 = q $8 q } 1' FS=, OFS=, q=\' infile

これは、入力と出力がカンマで区切られている ( FS=, OFS=,) ことを awk に伝え、どのフィールドにもカンマが埋め込まれていないと想定します。フィールド 3 と 8 は、q変数を介して引用符を受け取ります。

出力:

'SellerName',2013-08-20 17:19:49,'71.185.24.60',-8523106007192903367,5526150741,1,null,'25d20a500342-653AC57AF9E6401B',16,2574455867,product description,-8574103407192903368,353860,_,null,-1
于 2013-08-23T08:18:12.533 に答える
1
sed -i s/71.185.24.60/"'71.185.24.60'"/g filename

他のパターンも同様。

于 2013-08-23T11:35:29.213 に答える