输入文件:
O,ff,$ 1123.81,ty,20100608,jjj ,, 13.180002 ,,,,
O,gg,$ 1794.06,jui,20100608,jjj ,, 13.180008 ,,,,
O,GG,$ 1794.06,瑞,20100608,JJJ ,, 13.180008 ,,,,
哪里有,发生在我需要替换的输入文件中,(中间的空格),有人可以帮我解决这个问题吗?
答案 0 :(得分:3)
纯粹的bash脚本
#!/bin/bash
# tested on bash 4
while read -r line
do
while [[ $line =~ ,, ]]
do
line=${line//,,/, ,}
done
echo "$line"
done < file
示例输出
bash4> bash comma.sh
O,ff,$1123.81,ty,20100608,jjj, ,13.180002, , , ,
O,gg,$1794.06,jui,20100608,jjj, ,13.180008, , , ,
O,gg,$1794.06,jui,20100608,jjj, ,13.180008, , , ,
请注意,额外的while循环用于将后续,,
更改为, ,
答案 1 :(得分:1)
这样的事情可能有用:
sed -e 's/,,/, ,/g' inputfile
正如bash-o-logist指出的那样,,,,,
之类的内容所需的结果可能是, , , ,
。如果是这样,那么可以使用它(运行命令两次):
sed -e 's/,,/, ,/g; s/,,/, ,/g' inputfile