linux sed命令使用

本文详细介绍了SED命令的基础用法,包括输出指定行、删除指定行、指定行后添加内容及替换行数据等操作,并通过实例展示了如何进行行数据的查找与替换。

sed 来源 stream editor"

本文主要内容:

  1. sed输出指定行、排除指定行输出、非连续行输出、行替换显示,指定行后面添加内容

  2. 行数据替换,通配符,指定行范围

  3. 直接修改文件内容


-i:直接修改读取文件的内容,而不是由屏幕输出。 (-i,n用的多些)
动作
’n1,n2 function’ (其中n1-n2为function处理范围,function参数: [ acdips ])
-a:新增,-a后面接字符串,会出现在目前的行的下一行。
-i:则是上一行
-c:替换n1-n2行为c后面的字符串。
-d:删除n1-n2行字符串。
-p:打印和sed -n结合使用


sed输出指定行、排除指定行输出、非连续行输出、行替换显示


  1. 输出指定行sed -n 'n1,n2 p',例如2-3行,sed -n '2,3p' filename

  2. 删除指定行 sed '2,3d' filename

  3. 指定行后面添加,字符串,例如 第二行后面添加’after line 2’
    sed '2a after line 2'

  4. 指定行替换,例如2-3行替换为 'Line2-3' sed '2,3c Line2-3'

  5. 输出myfile.txt lines 5-7 以及 10-13 :

sed -n -e '5,7p' -e '10,13p' myfile.txt

这里写图片描述


行数据替换,通配符,指定行范围


行部分数据的查找并替换, sed 's/要被代替的字符串/新的字符串/g'

  1. th替换为st, sed 's/th/st/g'

  2. 每一行最后添加’Z’ sed 's/$/Z/g'

  3. 最后一个字符替换为’Z’ , sed 's/.$/Z/g'

  4. 最后一个字符为0-9则替换为’Z’, sed 's/[0-9]$/Z/g'

  5. 行首添加’B’, sed ‘s/^/B/g’

  6. 行首添字符0-9替换为’B’, sed ‘s/^[0-9]/B/g’

  7. 替换指定行,例如替换30-40行

sed '30,40 s/version/story/g' myfile.txt
  1. i 忽略大小写替换 sed 's/version/story/gi' myfile.txt

这里写图片描述

直接修改文件内容


sed -i 's/src/dst/g' filename

例子:将文档的每一句的最后的 . 改为 !

这里写图片描述

如果转载请在下面留言, 尊重别人的劳动成果!

在安卓的 Linux 系统中,`sed`(Stream Editor)是一款强大的流编辑器,可对文本进行增、删、改、查等操作。以下是一些常见的 `sed` 命令使用示例: ### 替换操作 - **全局替换**:将每行中的所有 `day` 替换为 `week`,并打印结果。 ```bash sed -n 's/day/week/gp' filename.txt ``` 这里的 `s` 表示替换操作,`g` 是全局替换标志,`p` 用于打印修改后的行。如果要直接修改文件内容,可以使用 `-i` 选项: ```bash sed -i 's/day/week/g' filename.txt ``` - **仅替换每行的第 `n` 个匹配项**:例如仅替换每行中第 2 个 `day` 为 `week`。 ```bash sed 's/day/week/2' filename.txt ``` ### 删除操作 - **删除包含特定字符串的行**:删除包含 `baidu.com` 的所有行。 ```bash sed -i '/baidu.com/d' domain.file ``` 其中,`d` 表示删除操作。 - **删除匹配行及后续所有行**:删除匹配 `20160229` 的行及后面所有行。 ```bash sed '/20160229/,$d' filename.txt ``` `$` 表示文件的最后一行。 ### 插入和追加操作 - **在指定行前插入内容**:在第 3 行前插入 `New line before 3`。 ```bash sed '3i New line before 3' filename.txt ``` - **在指定行后追加内容**:在第 5 行后追加 `New line after 5`。 ```bash sed '5a New line after 5' filename.txt ``` ### 打印特定行 - **打印第 5 行**: ```bash sed -n '5p' filename.txt ``` - **打印第 3 行到第 7 行**: ```bash sed -n '3,7p' filename.txt ``` ### 替换文件中每行的第一个匹配项 在第一行中,仅第二次出现的“ day”被更改。这是因为 `sed` 在每行的第一个匹配项之后停止。若要执行全局搜索,处理每行中的所有匹配项,需在表达式末尾添加“ g”,如 `sed -n 's/day/week/gp' coleridge.txt` [^2]。 更多详细信息可参考:[sed 命令相关](https://www.cnblogs.com/ggjucheng/archive/2013/01/13/2856901.html) [^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值