请解释下面的unix代码

时间:2014-09-18 13:29:13

标签: unix sed

 echo "1,a,20,000,aa,s" | sed 's/,\([^0]\)/|\1/g'  
 **output  
 1|a|20,000|aa|s**  

请解释上述命令。

我无法理解这次执行。

1 个答案:

答案 0 :(得分:0)

给定的命令使用sed将某些字符替换为其他字符。

基本形式是

s/FIND/REPLACE/

其中FIND和REPLACE是正则表达式。 最后的g代表全球。这意味着不仅第一次出现模式匹配FIND,而且所有出现都在输入字符串中。

使用正则表达式:

FIND,\([^0]\)此模式匹配以,开头的所有两个字符串,后面跟不是0

REPLACE |\1这等于以|开头的两个字符串,后跟FIND中的第二个字符。 (\1会记住以前找到的匹配项)

有关sed命令的详细概述,我建议您也阅读:http://www.grymoire.com/Unix/Sed.html#uh-1

要查看如何阅读正则表达式:http://www.grymoire.com/Unix/Regular.html

如果上述网页对您不具启发性,那么有更多网站可以找到。