通常,我们使用sed进行
变量替换的时候,
替换和被替换变量都是hard-coded的。例如:\x0d\x0a\x0d\x0ased-n‘/comm/p’/tmp/test.log\x0d\x0a\x0d\x0a如果我们用一变量var,它的值根据上下文变化\x0d\x0a\x0d\x0a$var=”comm”,定义了变量,那么我们在sed的使用中这样使用变量\x0d\x0a\x0d\x0a$sed-n‘/’”$var”‘/p’/tmp/test.log\x0d\x0a\x0d\x0a注意,是用单引号包含双引号来引用变量。\x0d\x0a\x0d\x0a最初接触这个
命令的人,可能以为$var之前的单引号会结束当前的script,其实不会。\x0d\x0a\x0d\x0a若要在文本中匹配一个范围的话,可以使用的sed匹配\x0d\x0a$sed-n\x0d\x0a‘/’”$var_start”‘/{p:an/’”$var_end”‘/pba}’/tmp/test.log\x0d\x0a\x0d\x0a-n关闭sed的默认输出\x0d\x0a/$var_start/当数据行中查找到字符串$var_start\x0d\x0a时开始工作,后面的是命令组{}\x0d\x0ap打印出$var_start这一行\x0d\x0a:a定义一个标签,名称为a\x0d\x0an\x0d\x0a读取下一行\x0d\x0a/$var_end/p当读入的这一行中查找到$var_end字符串时,输出\x0d\x0aba跳转到标签a\x0d\x0a\x0d\x0a其实有个问题,应该适时跳出的,不然要等文件全部读取完,效率低了。自己改吧
1.sed命令使用单引号的情况下,可以使用'"$var"'引用(单引号,然后双引号,变量):
2.sed命令中使用双引号的情况下,直接`shell command`或者$(shell command)引用命令执行。
评论列表(0条)