【分享一些Linux sed 命令的使用技巧】

sed(stream editor)是Linux中一个非常强大的文本处理工具,用于对文本进行过滤和替换。它特别擅长执行基于模式的替换、删除和插入操作。适合简单的文本替换、删除特定行、插入文本等任务

以下是一些常用的 sed 使用技巧:

  1. 基础替换
    使用 s 命令来替换文本。例如,将文件中所有的 “old” 替换为 “new”:

    sed 's/old/new/g' filename
    
  2. 行号替换
    只替换特定行号的文本:

    sed '10s/old/new/' filename
    
  3. 范围替换
    替换某个范围内的文本:

    sed '10,20s/old/new/' filename
    
  4. 使用正则表达式
    使用正则表达式进行更复杂的替换:

    sed 's/[0-9]*old/new/g' filename
    
  5. 原地编辑
    直接修改文件而不是输出到标准输出:

    sed -i 's/old/new/' filename
    
  6. 追加文本
    在文件末尾追加文本:

    echo 'new line' | sed 's/^/appended line /' >> filename
    
  7. 删除行
    删除包含特定文本的行:

    sed '/old/d' filename
    
  8. 打印行号
    打印文件中每一行的行号:

    sed -n 's/^/行号: /p' filename
    
  9. 多文件处理
    对多个文件执行相同的 sed 命令:

    sed 's/old/new/' file1 file2 file3
    
  10. 使用模式空间
    sed 将输入文本分成多个模式空间,每个模式空间包含一行。使用 N 命令将多行合并到一个模式空间中:

    sed ':a;N;$!ba;s/\n/ /g' filename
    
  11. 使用保持空间
    sed 的保持空间可以存储文本,使用 h 命令将模式空间的内容复制到保持空间,使用 g 将保持空间的内容复制到模式空间:

    sed ':a;s/old/new/;t;h;ba' filename
    
  12. 使用标签
    使用标签跳转到 sed 脚本中的特定位置:

    sed ':a;s/old/new/;ta' filename
    
  13. 转义特殊字符
    如果需要替换的文本包含正则表达式的特殊字符,需要使用反斜杠 \ 进行转义:

    sed 's/\*old\*/new/' filename
    
  14. 打印不匹配的行
    只打印不包含 “old” 文本的行:

    sed '/old/!p' filename
    
  15. 使用 sed 进行列操作
    将制表符分隔的列进行操作,例如将第二列替换为 “new”:

    sed 's/^.*\t.*\t.*$/第一列\tnew\t第三列/' filename
    

这些只是 sed 的一些基本用法。sed 非常灵活,可以通过编写复杂的脚本来执行更高级的文本处理任务。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值