Unix 需要sed和awk命令的帮助吗?
输入文件: O、 ff$1123.81,泰,20100608,jjj,13.180002 O、 gg,$1794.06,瑞,20100608,jjj,13.180008 O、 gg,$1794.06,瑞,20100608,jjj,13.180008Unix 需要sed和awk命令的帮助吗?,unix,sed,awk,Unix,Sed,Awk,输入文件: O、 ff$1123.81,泰,20100608,jjj,13.180002 O、 gg,$1794.06,瑞,20100608,jjj,13.180008 O、 gg,$1794.06,瑞,20100608,jjj,13.180008 在我需要替换的输入文件中,如果有,,,出现在,,,之间,有人能帮我解决这个问题吗?类似的方法可能会奏效: sed -e 's/,,/, ,/g' inputfile 正如bash-o-logist所指出的那样,像,,这样的东西所期望的结果可能是,。
在我需要替换的输入文件中,如果有,,,出现在,,,之间,有人能帮我解决这个问题吗?类似的方法可能会奏效:
sed -e 's/,,/, ,/g' inputfile
正如bash-o-logist所指出的那样,像,,
这样的东西所期望的结果可能是,
。如果是这样,则可以使用该命令(运行该命令两次):
类似的方法可能会奏效:
sed -e 's/,,/, ,/g' inputfile
正如bash-o-logist所指出的那样,像,,
这样的东西所期望的结果可能是,
。如果是这样,则可以使用该命令(运行该命令两次):
纯bash脚本
#!/bin/bash
# tested on bash 4
while read -r line
do
while [[ $line =~ ,, ]]
do
line=${line//,,/, ,}
done
echo "$line"
done < file
请注意,额外的while循环用于将后续的,
更改为,
纯bash脚本
#!/bin/bash
# tested on bash 4
while read -r line
do
while [[ $line =~ ,, ]]
do
line=${line//,,/, ,}
done
echo "$line"
done < file
请注意,额外的while循环用于将后续的
,
更改为,
,我希望这只会影响一次。。我需要做整个文件这将工作的每一行。如果省略g
,它将影响每行的第一个双逗号,而不是每行的每一对。@jcrshankar:我可能不理解你的问题,但sed脚本将替换文件中的所有实例。我不确定OP希望如何输出,但这只会改变,
。因为可能存在,,,
,所以输出将如下所示,
。还有,
。@bash-o-logist:这是一个很好的观点;你可能是对的。我不确定。我希望这只会影响一次。。我需要做整个文件这将工作的每一行。如果省略g
,它将影响每行的第一个双逗号,而不是每行的每一对。@jcrshankar:我可能不理解你的问题,但sed脚本将替换文件中的所有实例。我不确定OP希望如何输出,但这只会改变,
。因为可能存在,,,
,所以输出将如下所示,
。还有,
。@bash-o-logist:这是一个很好的观点;你可能是对的。我不确定。是的,谢谢巴什。我希望这会有所帮助。我查了一下,再问一个好的。没有sed的纯bash。。。是的;)当[[$line=~,]]将要做什么时,请告诉我ksh中的等价语句?这只是为了检查是否还有更多的,
。您也可以使用case
或if
语句进行检查。是的,谢谢bash。我希望这会有所帮助。我查了一下,再问一个好的。没有sed的纯bash。。。是的;)当[[$line=~,]]将要做什么时,请告诉我ksh中的等价语句?这只是为了检查是否还有更多的,
。您也可以使用case
或if
语句进行检查。