大湖之子 发表于 2018-8-19 08:38:48

shell 编程四剑客之SED

  (1)SED 作用
  sed是一个非交互式的文本编辑器, 对比Vi(vim) 是一个交互式的编辑器
  (2) SED 语法
  sed[-option]      files
  注释:
  sed 工具默认处理文本,文本内容输出屏幕已经修改,但是文件内容其实没有修改, 需要加i 参数彻底修改
  (3) SED实战
  SED 实战替换文本
   jfedu.txt文件中,将文件中所有的old,替换为new
  sed    's/old/new/g'jfedu.txt
   jfedu.txt文件中,将http://www.jd.com替换为 http://www.baidu.com
  sed's#http://www.jd.com#http://www.baidu.com#g'   jfedu.txt
  SED 实战打印文本
  jfedu.txt文件中,打印第一行
  sed-n'1p'jfedu.txt
   jfedu.txt文件中,打印1到3行
  sed   -n   '1,3p'jfedu.txt
   jfedu.txt文件中,打印最后一行
  sed   -n'$p'   jfedu.txt
   jfedu.txt文件中,打印第一行与最后一行
  sed   -n'1p;$p'   jfedu.txt
   jfedu.txt 文件中,打印第一行到最后一行
  sed   -n   '1,$p'jfedu.txt
   jfedu.txt文件中,打印/linux/这一行
  sed-n'/linux/p'jfedu.txt
   jfedu.txt文件中,打印第一行与最后一行(用-e这个扩展参数实现)
  sed-n   '1p'-e'$p'   jfedu.txt
   jfedu.txt文件中,匹配/linux/这一行和/test/这一行,打印出来
  sed-n'/linux/,/test/p'jfedu.txt
   jfedu.txt文件中,匹配/linux/这一行到最后一行,打印出来
  sed-n'/linux/,$p'   jfedu.txt
  SED实战删除文本
  jfedu.txt文件中,删除第一行到第3行
  sed    '1,3d'jfedu.txt
   jfedu.txt文件中,删除linux匹配行到最后一行
  sed'/linux/,$d'jfedu.txt
  SED实战插入文本
   jfedu.txt文件中,查找/linux/这一行,并在下一行添加word字符
  sed'/linux/aword'jfedu.txt
   jfedu.txt文件中,查找/linux/这一行,并在上一行添加word字符
  sed   '/linux/iword'jfedu.txt
   jfedu.txt文件中,查找/linux/这一行,在上一行添加word字符,在下一行添加word字符
  sed-e '/linux/aword'-e'/linux/iword/'jfedu.txt
   jfedu.txt文件中,查找以test结尾的行,并在其行尾添加word字符
  sed   's/test$/&word/g'jfedu.txt
   jfedu.txt文件中, 查找/www/所在行,在其行行首添加word字符
  sed   'www/s/^/&word/g'jfedu.txt
   jfedu.txt文件中,查找以com结尾的行,在行尾添加.查找/mpt/所在行,在其行首添加.
  sed -e's/com$/&./g'-e'/mpt/s/^/&./g'   jfedu.txt
   用sed打印根
  sed -n 's/\//p'
   sed 读取变量,并进行替换
  website=www.jfedu.net
  sed''s/www.jd.com/$website/g''jfedu.net

页: [1]
查看完整版本: shell 编程四剑客之SED