
6つの列を持つファイルがあり、各フィールドは「I」で区切られ、最後の列の2番目の列には金額フィールドが含まれています。
140121059|01/01/201400:00:45|[1390]|[387]|17.64|10
140121060|01/01/201400:00:46|[1112]|[867]|26.46|10
140121062|01/01/201400:00:47|[182]|[13]|4,117.60|10
140121065|01/01/201400:00:48|[1088]|[385]|1,147.04|10
この列に対して一部の操作を実行できないため、金額列から「、」を削除したいと思います。 「、」はすべての列に表示されません。バッシュを使っています。
答え1
あなたはそれを使用することができますawk
:
$ awk -F'|' '{sub(",","",$(NF-1))}1' OFS='|' file
140121059|01/01/201400:00:45|[1390]|[387]|17.64|10
140121060|01/01/201400:00:46|[1112]|[867]|26.46|10
140121062|01/01/201400:00:47|[182]|[13]|4117.60|10
140121065|01/01/201400:00:48|[1088]|[385]|1147.04|10
$(NF-1)
2番目のフィールドを参照し、そのフィールドのコンマのみを置き換えます。
すべてのフィールドからコンマを削除するには、次のものを使用できますtr
。
$ <file tr -d ',' > out_file
答え2
ファイルの fields にコンマだけが含まれていると仮定すると、amount
次のコマンドを使用できます。
sed 's/,//g' filename
答え3
私はsedを使用したいだけです:
sed 's/,//g' filename