linux三剑客-sed

拼搏现实的明天。 2023-06-05 12:45 158阅读 0赞

sed命令

linux文本处理三剑客

sed stream editor

  1. 做为行编辑器,对文本进行编辑(以行为单位进行编辑)
  2. 注意:sed编辑文件,却不改变原文件

sed工作原理

制定一个文本文件,依次读取文本文件中每行的内容,读取到模式空间中(PATTERN SPACE),在模式空间中进行文本匹配(正则表达式),对匹配后的内容进行修改(替换、删除、打印、修改、保存)

用法:

sed[option]…{script-only-if-no-other- script}[input-file]…

sed[参数] “sed自己独立的用法格式的语句”[文本文件]

常见选项

  1. -n 拒绝默认显示\[默认情况下全部输出\]
  2. -r 指定使用扩展的正则表达式
  3. -e script for or while if
  4. -f 指定脚本文件
  5. -l 指定 文本长度
  6. -i 直接修改文件内容

地址定界方式

  1. 1.直接匹配数值 sed -n 5p’文件
  2. 2.$指定行尾 sed -n 10,$p 文件
  3. 3.digit~步长 eg. sed -n 1~3’文件
  4. 4./正则1/,/正则2/

sed -n ‘/k\{5,\}/$p’ abc

  1. sed -n ‘/\\(fd\\)\\+/,7p abc
  2. 5.0,addr
  3. addr可以为数字/$/正则表达式
  4. sed -n 0,/k\\\{5,\\\}/pabc
  5. 6.addr,+N
  6. 配置addr行到,addrN
  7. sed -n ‘/fd/,+5p adc

常见命令

  1. p print 打印(默认在屏幕上显示出来)建议和-n一起使用
  2. c 替换
  3. sed “/aaa/c \\A a
  4. d 删除
  5. sed “/aaa/d a
  6. sed 1,3d a
  7. n N(读取/添加)模式匹配到的下一行内容,再对其进行操作
  8. w 保存文件内容到一个新的文件
  9. sed “/patthen/w新的文件名”原来的文件名
  10. sed “/k/w /tmp/aabbcc abc
  11. \*s\* 文本内容替换,默认替换模式空间匹配到的第一项;
  12. 语法格式:s/pattern/字符串/
  13. 中间的斜杠可以替换为任意一个特殊字符
  14. g global全部
  15. \\1\\2 和正则表达式的分组相同,实现反向应用
  16. 指定某一个匹配选项进行修改替换
  17. & 调用前面匹配的内容
  18. sed s/r..t/&er/g 文件
  19. w
  20. p

sed的高级应用

  1. 模式空间 hold space“占有空间”

练习:

  1. 删除/boot/grub/grub.conf文件中所有空白开头的行行首的空白字符;

sed ‘s/^[[:space:]]\+//g’ /boot/grub/grub.conf

  1. 删除/etc/fstab文件中所有以#开头,后面至少跟一个空白字符的行的行首的#和空白字符

sed ‘s/^#[[:space:]]\+//g’ /etc/fstab

  1. 给定一个目录,取出其目录名

  2. 给定一个目录,取出其文件名

dirname – 取出文件路径的路径部分

basename – 取出文件路径的文件名部分

转载于:https://www.cnblogs.com/TheNeverLemon/p/11384419.html

发表评论

表情:
评论列表 (有 0 条评论,158人围观)

还没有评论,来说两句吧...

相关阅读