awk、部分文字列から文字を削除する

awk、部分文字列から文字を削除する

次のCSVがあります。 2017年から20を削除しようとしているため、3717または31817のような形式になります。一部の日付の日付は一桁なので、場所は常に異なります。年は常に4桁なので、2列目の20を右から左にどのように削除しますか?

12 322017 EOD取引J 87.75   
123232017 EOD取引J 155  
453302017 EOD取引J 270 

期待される出力

12 3217 EOD取引J 87.75   
12 32317 EODトランザクションJ 155  
45 33017 EODトランザクションJ 270

ベストアンサー1

アッ方法:

awk '{match($2, /^([0-9]+)[0-9]{2}([0-9]{2})$/, a); $2=a[1]a[2]}1' file

出力:

12 3217 EODTRANSACTION J 87.75
12 32317 EODTRANSACTION J 155
45 33017 EODTRANSACTION J 270

match($2, /^([0-9]+)[0-9]{2}([0-9]{2})$/, a)- 以下を除いて2番目のフィールドをキャプチャします。サム研究開発と4最後の桁

おすすめ記事