QQ个性网:专注于分享免费的QQ个性内容

关于我们| 网站公告| 广告服务| 联系我们| 网站地图

搜索
编程 JavaScript Java C++ Python SQL C Io ML COBOL Racket APL OCaml ABC Sed Bash Visual Basic Modula-2 Logo Delphi IDL Groovy Julia REXX Chapel X10 Forth Eiffel C# Go Rust PHP Swift Kotlin R Dart Perl Ruby TypeScript MATLAB Shell Lua Scala Objective-C F# Haskell Elixir Lisp Prolog Ada Fortran Erlang Scheme Smalltalk ABAP D ActionScript Tcl AWK IDL J PostScript IDL PL/SQL PowerShell

解锁 sed 命令:Linux 文本处理高效秘籍大揭秘

日期:2025/04/08 13:09来源:未知 人气:57

导读:sed(Stream Editor)是一款非常实用的工具,特别擅长处理和转换文本。想象一下,它就像一个细心的文字小助手,逐行阅读你提供的内容,然后按照你的指示进行修改或处理,最后再把结果呈现给你。无论你是需要批量编辑多个文件,还是处理大量的文本数据,sed 都能帮你轻松搞定!基本语法选项:控制sed的行为。命令:指定对文本执行的操作。文件名:要处理的文件。如果不指定文件,则从标......

sed(Stream Editor)是一款非常实用的工具,特别擅长处理和转换文本。想象一下,它就像一个细心的文字小助手,逐行阅读你提供的内容,然后按照你的指示进行修改或处理,最后再把结果呈现给你。无论你是需要批量编辑多个文件,还是处理大量的文本数据,sed 都能帮你轻松搞定!

基本语法

  • 选项 :控制sed的行为。

  • 命令 :指定对文本执行的操作。

  • 文件名 :要处理的文件。如果不指定文件,则从标准输入读取。

常用选项

常用命令

1. 替换命令s

  • 基本语法

○ 将每行中第一个匹配的“旧内容”替换为“新内容”。

  • 全局替换

○ 将每行中所有匹配的“旧内容”替换为“新内容”。

  • 指定行替换

  • 忽略大小写

  • 保存修改到文件

2. 删除命令d

  • 删除指定行

3. 插入命令i

  • 在指定行前插入内容

4. 追加命令a

  • 在指定行后追加内容

5. 打印命令p

  • 打印指定行

6. 替换指定字符y

  • 将字符一一替换

7. 退出命令q

  • 处理到指定行后退出

高级用法

1. 多命令执行

使用 -e 指定多个命令:

sed -e 's/旧内容/新内容/' -e '2d' 文件名

使用分号分隔多个命令:

sed 's/旧内容/新内容/; 2d' 文件名

2. 使用正则表达式

匹配行首和行尾:

sed 's/^旧内容/新内容/' 文件名 # 替换行首的“旧内容” sed 's/旧内容$/新内容/' 文件名 # 替换行尾的“旧内容”

匹配任意字符:

sed 's/a.*b/新内容/' 文件名 # 替换从 a 到 b 之间的内容

3. 使用保持空间

将当前行复制到保持空间:

sed 'h' 文件名

将保持空间的内容追加到模式空间:

sed 'H' 文件名

交换模式空间和保持空间的内容:

sed 'x' 文件名

4. 分支和跳转

使用标签和跳转:

sed ':label; s/旧内容/新内容/; t label' 文件名

示例

示例1:替换文件内容

假设有一个 file.txt 文件,内容如下:

  • Hello 替换为 Hi

  • 全局替换 Hello

  • 直接修改文件:

示例2:删除空行

  • 删除所有空行:

示例3:打印指定行

  • 打印第2行:

示例4:插入和追加

  • 在第2行前插入一行:

  • 在第2行后追加一行:

示例5:处理CSV文件

假设有一个 data.csv 文件,内容如下:

  • 将逗号替换为冒号:

总结

sed 是一款非常实用的流式文本编辑器,特别适合用来批量编辑文本文件或处理文本流。它结合了正则表达式、替换、删除和插入等功能,能够帮助你轻松完成各种复杂的文本处理任务。学会使用 sed 可以显著提升你在命令行中的工作效率哦!

Sed排行

关于我们|网站公告|广告服务|联系我们| 网站地图

Copyright © 2002-2023 某某QQ个性网 版权所有 | 备案号:粤ICP备xxxxxxxx号

声明: 本站非腾讯QQ官方网站 所有软件和文章来自互联网 如有异议 请与本站联系 本站为非赢利性网站 不接受任何赞助和广告