sed命令常用例子

本文介绍了使用Linux命令行工具sed进行文本替换、行删除、行插入、文件合并等常见文件操作的方法,包括如何替换文件中的特定文本、删除或插入行、以及批量处理文件等实用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 替换文件中的文本

将文件file.txt中的所有"old_text"替换成"new_text":

sed -i ‘s/old_text/new_text/g’ file.txt

  1. 删除文件中的某行

删除文件file.txt中的第5行:

sed -i ‘5d’ file.txt

  1. 在文件中添加一行

在文件file.txt的第2行添加一行"new_line":

sed -i ‘2i\new_line’ file.txt

  1. 删除文件中某行的前n个字符

删除文件file.txt中第3行的前5个字符:

sed -i ‘3s/^…//’ file.txt

  1. 在文件中查找并打印匹配的文本

在文件file.txt中查找包含"search_text"的行并打印出来:

sed -n ‘/search_text/p’ file.txt

  1. 将多个文件合并成一个文件

将多个文件file1.txt, file2.txt和file3.txt合并成一个文件all_files.txt:

sed -n ‘1,$p’ file1.txt file2.txt file3.txt > all_files.txt

  1. 删除文件中的空行

删除文件file.txt中的所有空行:

sed -i ‘/^$/d’ file.txt

  1. 批量重命名文件

将所有以".txt"结尾的文件名中的"old_text"替换成"new_text":

for file in *.txt; do mv “ f i l e " " file" " file""(echo $file | sed ‘s/old_text/new_text/g’)”; done

  1. 删除文件中的最后一行

删除文件file.txt中的最后一行:

sed -i ‘$d’ file.txt

  1. 替换文件中某行的某个单词

将文件file.txt中第3行的"old_word"替换成"new_word":

sed -i ‘3s/old_word/new_word/g’ file.txt

  1. 删除文件中某行的最后n个字符

删除文件file.txt中第2行的最后5个字符:

sed -i ‘2s/…$//’ file.txt

  1. 在文件中查找并删除匹配的文本

在文件file.txt中查找包含"search_text"的行并删除该行:

sed -i ‘/search_text/d’ file.txt

  1. 替换文件中某个单词

将文件file.txt中所有"old_word"替换成"new_word":

sed -i ‘s/old_word/new_word/g’ file.txt

  1. 在文件中插入空行

在文件file.txt的第4行和第5行之间插入一个空行:

sed -i ‘4i\’ file.txt

  1. 替换文件中的文本并备份原文件

将文件file.txt中所有"old_text"替换成"new_text"并备份原文件:

sed -i.bak ‘s/old_text/new_text/g’ file.txt

  1. 将org.txt中的201到230行复制到new.txt中
    sed -n ‘201,230p’ org.txt > new.txt
### 关于 Linux 中 `sed` 命令的使用方法 #### 一、基本概念 `sed` 是一种流编辑器,在 Linux 系统中用于对文件或文本流进行查找、替换、插入和删除等操作[^1]。 #### 二、基本语法结构 命令的一般形式如下所示: ```bash sed [选项] '命令' 文件名 ``` 其中,常用的选项有 `-n`(只打印处理过的行)、`-e`(允许多个编辑命令)等;而命令部分则是具体的操作指令,比如`s/old/new/g`(全局替换字符串)。 #### 三、简单实例展示 ##### 替换特定字符 要将文件中的某个单词替换成另一个词,可以这样写: ```bash sed 's/旧字串/新字串/' filename.txt ``` 这条语句会把每一行第一次出现的“旧字串”改为“新字串”。如果想要全部替换,则可以在最后加上标志g,即变为`s/旧字串/新字串/g`[^2]。 ##### 删除含有某模式的整行 当需要移除包含特定关键词的所有行时,可以用下面的方式实现: ```bash sed '/pattern/d' file.txt ``` 这里 `/pattern/` 表达的是正则表达式匹配条件,“d”表示删除满足该条件的那些行[^3]。 ##### 插入新行之前或之后 要在某些位置前后添加新的内容,可通过以下两种方式之一达成目的: - 在指定行前加一行:“a\ 新增的内容” ```bash sed 'line_number a\ new content here' inputfile > outputfile ``` - 或者是在给定行后面追加一行:“i\ 要加入的信息” ```bash sed 'line_number i\ insert this line before specified one' source_file > destination_file ``` 注意:以上例子均假设直接在终端运行,并且可能需要根据实际情况调整路径名称以及是否重定向输出至其他地方[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DaxiaLeeSuper

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值