我有一个包含6列的文件,每个字段由管道分隔,第二列包含金额字段。
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
我想从金额列中删除commA,因为我无法对此列进行某些操作。 ,并未列入所有专栏。我正在使用bash。
答案 0 :(得分:1)
使用awk
:
awk -F '|' -v OFS='|' '{ gsub(/,/, "", $5) } 1' 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
-F '|' -v OFS='|'
将输入字段分隔符和输出字段分隔符设置为管道|
。这基本上将列分隔符设置为|
。gsub(/,/, "", $5)
删除第5列中的所有逗号。1
命令实际打印。使用bash
:
while IFS='|' read -ra LINE; do LINE[4]=${LINE[4]//,}; IFS='|' eval 'echo "${LINE[*]}"'; done < file