grep -v "^\s*#" 和 sed 's/\s*=\s*.*//g' 这2个语句分别是什么作用?麻烦详细说明一下,谢谢
1个回答
展开全部
-v 表示反向选择
"^\s*#" 表示匹配以S开头的字符串,s.....# 这种形式。由于sed里有个替换命令s,所以如果要表示s字符本身,需要在前面加转义符\来消除其特殊含义。
综上,grep -v "^\s*#" 就表示过滤出 非s.....# 形式的字符串。
sed 's/\s*=\s*.*//g'
这个就是替换命令s,格式为 s/.../.../g,最后的g表示全部替换,否则只替换第一次匹配的。
只替换符合 \s*=\s*.* 这种正则匹配的字符串,\s*=\s*.* 表示 sxxx=sxxx.xxx 这种形式(x表示任意字符)。
理解上面说的,再结合你要处理的文件格式,就可以很清楚地知道是什么意思了。
"^\s*#" 表示匹配以S开头的字符串,s.....# 这种形式。由于sed里有个替换命令s,所以如果要表示s字符本身,需要在前面加转义符\来消除其特殊含义。
综上,grep -v "^\s*#" 就表示过滤出 非s.....# 形式的字符串。
sed 's/\s*=\s*.*//g'
这个就是替换命令s,格式为 s/.../.../g,最后的g表示全部替换,否则只替换第一次匹配的。
只替换符合 \s*=\s*.* 这种正则匹配的字符串,\s*=\s*.* 表示 sxxx=sxxx.xxx 这种形式(x表示任意字符)。
理解上面说的,再结合你要处理的文件格式,就可以很清楚地知道是什么意思了。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询