正規表現を使用して、シンボルに一致する文字列にのみ文字を置き換えます。

正規表現を使用して、シンボルに一致する文字列にのみ文字を置き換えます。

シンボルマッチングリストを検索して、CSVの2番目の列の文字列を置き換えたり変更したりする方法についてのアドバイスが必要です。

これは私のファイルです。csv

[Entry]
Date,20-02-2000
[Input]
SL,Name,Datasize,value
1,tg12.18.l,ch17,12.1
2,yo11`18.p,ch18,13.5
3,qk13_18.q,ch19,22.6
4,ls15-18.r,ch20,23.7
5,ew16'18.s,ch21,24.9

sed/awk の実行後に予想される結果は次のとおりです。

[Entry]
Date,20-02-2000
[Input]
SL,Name,Datasize,value
1,tg12_18_l,ch17,12.1
2,yo11_18_p,ch18,13.5
3,qk13_18_q,ch19,22.6
4,ls15-18_r,ch20,23.7
5,ew16_18_s,ch21,24.9

検索が一致すると、何も-_ません。クエリが一致する場合は、, < ` '下線記号を使用して置き換える必要があります_

いくつかの組み合わせを試しましたが、うまくいきawkません。

 awk -F, -v OFS=, 'sub(/\.\`\>\'/,"_",$2)+1' file.csv

どんなアイデアにも感謝します。

ベストアンサー1

編集する: OPがデータを編集したので。awk代わりに今使用する方が良いですsed

awk 'BEGIN{FS=OFS=","}/^[0-9]+,/{gsub(/[\.<`\x27]/,"_",$2);print;next}1' file.csv

おすすめ記事