如何在sed中使用变量

来源:学生作业帮助网 编辑:作业帮 时间:2024/10/05 03:36:44
如何在sed中使用变量
xTn@?W*'RC,@}" '%B IP­Mstz_WR ^vv̜(:" 4:XX=2_:0jnΈ$%e;We4B.E$[^ы%ozVG| _4vszqnzNkr"ED,XYCza3.<5iwoORsAJ)R*L 4l4b\샜F PgzB>>Hr,@! գ'dR OLtI𨐘9ܚ; EoC3yzf0Ơe /iė'P|C|Lnaĺ9oڧSK$+LPнRdVw2m^̷wJJTdE>bB2mt1&nVǶ:pYؠ{~hq,ʡ>Sh^'Sr"@ ox8Gw×F>kX-ʐ(YP0Z 3zeCUnX?n>ThaF"ܦQjU'U-Ato>hKVIsNobesu68ÉH0Ϗɚ^G:Ackxvdؼ`^V{VMM)zDxyP[9r2#W!7wJ92/  #RR޷f

如何在sed中使用变量
如何在sed中使用变量

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