我有一个包含 6 列的文件,每个字段用“I”分隔,倒数第二列包含金额字段。
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
我想从金额列中删除“,”,因为我无法在此列上进行一些操作。 “,”并非出现在所有列中。我正在使用 bash。
答案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)
指的是倒数第二个字段,我们只替换该字段中的逗号。
如果您想删除所有字段中的逗号,您可以使用tr
:
$ <file tr -d ',' > out_file
答案2
假设您的文件仅在字段中包含逗号amount
,您可以使用如下命令。
sed 's/,//g' filename
答案3
我只想使用 sed:
sed 's/,//g' filename