博客
关于我
Linux-----sed 命令详解
阅读量:788 次
发布时间:2023-02-02

本文共 1236 字,大约阅读时间需要 4 分钟。

#SED命令详解

基础介绍

SED是一个强大的文本处理工具,支持通过模式进行文本的插入、删除、替换等操作。它能够以行为单位处理数据,适合对文本进行批量式处理。SEDr自身是一个管道命令,可以与其他命令通过管道进行数据传输。

命令行格式

SEDr的命令格式通常是以下形式:sed [选项] [命令] [文件]

commonly:

  • -n:使用安静模式(默认情况下,所有来自STDIN的数据都会被显示,但加上-n参数后,只有经过特殊处理的行(或动作)才会被显示。
  • -e:直接在命令中进行sed的动作编辑。
  • -f:将sed的动作写在文件中执行。
  • -r:支持扩展正则表达式语法。
  • -i:直接修改读取的文件内容,而不是从终端输出。

常用命令

插入

  • a:在当前行之后插入一行内容,后面可以接字符串,插入的新行会在当前行的下方。
  • i:在当前行之前插入一行内容,插入行会在当前行的上方。
  • g:可以用于追加多行内容,通过;分隔。

替换

  • c:替换当前行,后面可以接字符串,替换后的行会是新字符串。
  • s:替换字符串,格式为sed 's/旧字符串/新字符串/g',默认只替换第一个匹配项,/g可以替换所有匹配项。
  • 例如:sed '1,20s/enchantment/entrapment/g',可以将文件中第一到第二十行内的所有"enchantment"替换为"entrapment"。

删除

  • d:删除当前行。
  • D:删除模式空间中的第一行。
  • 例如:sed '$d' ab 可以删除文件中最后一行。

显示某行

  • -n可以用于控制输出,比如sed -n '1p' ab 可以显示第一行内容。

文件处理

SEDr可以进行大量文件处理操作,如删除空行、插入空行、格式转换等。

替换行中的某部分

例如:将文件中所有"ruby"替换为"bird":sed -n '/ruby/p' ab | sed 's/ruby/bird/g'

文件编号处理

  • 给每一行添加行号并与内容左对齐:sed '=' test.txt | sed 'N;s/s*ns*/t/'
  • 或者右对齐:sed '=' test.txt | sed 'N; s/ *([0-9]{3})s*ns*/1t/'

文本转换

  • 删除首尾空白:sed 's/^[[:blank:]]*|[[:blank:]]*$//' test.txt
  • 按行限制宽度:
sed -e ':a' -e 's/^.{1,78}$/ &/;ta' test.txt

文件处理实例

  • 在文件的每一行后添加一行空白行sed 'G' test.txt

  • 删除偶数行sed 'n;d' test.txt

  • 在匹配正则表达式的行前后添加空行

  • sed '/regex/{x;p;x;G;}' test.txt
    1. 每五行后添加一行空白行
    2. sed 'n;n;n;n;G' test.txt

      通过以上命令,SED可以完成文件的多种处理任务,从简单的行增删改查到复杂的文本转换和格式化操作,都能轻松应对。

    转载地址:http://igwfk.baihongyu.com/

    你可能感兴趣的文章
    linux 获取文件的行数
    查看>>
    linux 获取文件的行数
    查看>>
    linux 获取链表节点数,LINUX基础-list链表
    查看>>
    linux 虚拟化
    查看>>
    Linux 装机后服务器调优配置
    查看>>
    Linux 解决E: Sub-process /usr/bin/dpkg returned an error code (1)错误
    查看>>
    Linux 解决“/bin/bash^M: bad interpreter: No such file or directory”
    查看>>
    Linux 解决代理产生的Failed to connect to 127.0.0.1 port 58895: Connection refused问题
    查看>>
    Linux 解决错误File “/usr/bin/yum“, line 30 except KeyboardInterrupt, e:
    查看>>
    linux 解压tar包
    查看>>
    linux 解压多个zip文件,Linux同时解压多个压缩档案的方法
    查看>>
    Linux 计划任务详解
    查看>>
    Linux 计划任务详解
    查看>>
    linux 让php支持mysql_转 linux下php扩展mysqli的支持
    查看>>
    Linux 设置/删除环境变量
    查看>>
    linux 访问mysql
    查看>>
    linux 读写权限
    查看>>
    linux 超好用的命令行工具
    查看>>
    Linux 跑机器脚本与工具详解
    查看>>
    Linux 软件 RAID 设置
    查看>>