需要sed和awk命令的帮助吗?

时间:2011-04-20 14:09:53

标签: unix sed awk

输入文件:

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 ,,,,

哪里有,发生在我需要替换的输入文件中,(中间的空格),有人可以帮我解决这个问题吗?

2 个答案:

答案 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