• 7.4


    1、sed

      sed:查找和替换

      sed '/root/'p test.txt,查找并打印包含root 的行,在显示时会显示文件所有内容,并将包含root的行打印两次

      sed -n '/root/'p test.txt:查找且只显示包含root的行

      同时,sed也支持. * 等特殊字符

      sed也支持+,在使用+时,需要使用-r进行脱译

      sed也支持{}、|等

      sed -n '2'p test.txt:打印第二行

      sed -n '2,5'p test.txt:打印第二到五行

      sed -n '25,$' test.txt:打印第25到末行

      sed -e '1'p -e'/bus/'p -n test.txt:其中-e选项表示要执行多个条件,打印第一行,然后查找并打印包含bus的行

      sed -n '/bus/'Ip test.txt:查找bus,且不区分大小写

      使用sed删除:

       sed ‘1,10’d test.txt:删除文件的前10行

      但上述删除方法并未真正将文件中内容进行删除,只是将前10不打印出来:

      使用-i选项可以删除文件内容,sed -i ‘1,25’d test.txt:删除文件的前25行,查看文件行数,只剩下5行

      也可以删除包含指定内容的行,sed -i '/user2/'d test.txt,删除包含user2的行

      

      使用sed替换

      sed '1,10s/root/toor/g' test.txt:将文件前10行中的root,替换成toor,其中s表示替换,g表示全局,执行此命令时会打印文件的全部内容,但是只有前10行进行替换

      进行替换时,也可以使用正则表达式,sed -r '1,10s/ro+/r/g' test.txt

      head test.txt |sed -r 's/([^:]+):(.*):([^:]+)/3:2:1'   将文件前10行中的第一段和最后一段进行替换,其中前面用括号括起来的内容在后面中用表示出来,1、2、3分别表示第一至三个括号中的内容

      如果替换的内容中包含有/,需要使用进行脱译,head test.txt |sed 's//root/123/g',将文件前10行中的/root替换成123

      也可以修改分隔符,修改成@就可以执行

      

      使用sed删除指定的字符

      例如删除文件内的所有英文字符,sed 's/[a-zA-Z]//g',在删除时其实就是将指定的字符替换为空字符

      使用sed在所有行前面增加字符串

      sed -r ‘s/(.*)/aaa:&/’在文件所有行前增加aaa:,其中&表示前面的()

  • 相关阅读:
    一道小学数学题
    Ubuntu下使用git提交代码至GitHub
    C#几个小知识点
    C#中巧用#if DEBUG 进行调试
    使用 HPC Pack 为 Azure 中的 Windows HPC 工作负荷创建和管理群集的选项
    使用 Chef 自动执行 Azure 虚拟机部署
    在 Azure 中管理 Windows 虚拟机的可用性
    什么是 Azure 中的虚拟机规模集?
    从 Azure 下载 Windows VHD
    如何使用 Packer 在 Azure 中创建 Windows 虚拟机映像
  • 原文地址:https://www.cnblogs.com/w494129131/p/9256868.html
Copyright © 2020-2023  润新知