Linux系列开坑记(三)-流处理器sed

简介: Linux系列开坑记(三)-流处理器sed

今天我们聊一聊Linux 下sed 命令,sed是linux非常强大的命令,可以对数据进行替换,删除,新增等操作。


sed是 stream editor 流处理器简写,使用sed的同学往往需要对正则表达式比较熟悉,因为这样能让sed效果发挥到最好地步,从而得心应手。

下面我简单介绍常用的操作:


替换操作

最简单替换方式:

echo "sitin" >> test.txt

sed -i 's/sitin/pengtao/g/' test.txt

其中-i 参数 in-place 对文件进行修改, s 表示替换,g表示整行替换,没有就是第一个

test.txt 这里可以是一个或者多个通过正则匹配 *.txt 所有txt文件

删除操作

sed '2d' test.txt  # 删除文件第二行

sed '2,$d' test.txt  # 删除文件第二行到最后一行

追加操作

sed '$a test1\ntest2' test.txt # 末尾追加test1,test2

其他例子

image.png

图片

通过上面大家可以看到使用sed命令,用的正则表达式较多,所以在这里顺便提一下常用正则表达式的有下面几个:

. 表示任何单个字符。
* 表示某个字符出现了0次或多次
^ 表示一行的开头
$ 表示一行的结尾
\s 字符串
[ ] 字符集合,[abc] 这里面的表示匹配所有字符串。


在执行sed操作的时候,一开始不建议加上-i参数,原因是加上会导致数据被替换,尤其是数据替换错误情况。建议是通过把要做变更的文件进行版本控制比如Git,这样改变也能看到diff的效果。


这也是文本编辑的奥秘,其实我从一开始文章就建议大家用文本文件形式进行书写东西,包括论文,而不使用二进制文件,比如word。


使用文本文件好处:

  1. 通过Git版本控制你能轻易看到文件变更。
  2. Linux命令能非常好的发挥各个命令定制化能力。

上面介绍了sed常用的几个操作,更多操作大家可以参考官方文档,或者man sed,info sed 命令。


Linux日常命令使用,同Docker容器化一样我会以一个系列进行分享,今天是第三篇,后面我将持续分享更多内容,从Linux日常命令使用到shell脚本编程,欢迎大家持续进行关注。


相关文章
|
4月前
|
Linux Perl
一个神奇的Linux命令-sed
一个神奇的Linux命令-sed
22 1
|
11月前
|
Unix Linux 测试技术
软件测试|Linux三剑客之sed命令详解
软件测试|Linux三剑客之sed命令详解
111 0
|
4月前
|
存储 监控 Linux
性能工具之linux三剑客awk、grep、sed详解
Linux 三剑客 awk,sed和grep 在性能领域广泛用于性能建模、性能监控及性能分析等方面,也是各大互联网公司测试岗高频面试题,中高端测试人员必备技能之一。
104 1
性能工具之linux三剑客awk、grep、sed详解
|
29天前
|
Linux Perl
在Linux中,如何使用请用 cut 或者 awk,sed命令取出 linux 中 eth0 的 IP 地址?
在Linux中,如何使用请用 cut 或者 awk,sed命令取出 linux 中 eth0 的 IP 地址?
|
18天前
|
机器学习/深度学习 Linux Perl
Linux文本处理三剑客之sed详解
这篇博客详细讲解了Linux中的文本处理工具sed的使用方法和常用命令。
40 9
Linux文本处理三剑客之sed详解
|
30天前
|
Linux Shell Perl
在Linux中,如何使用sed命令进行文本替换?
在Linux中,如何使用sed命令进行文本替换?
|
30天前
|
数据挖掘 Linux Perl
在Linux中,awk和sed命令的作用?
在Linux中,awk和sed命令的作用?
|
30天前
|
Linux BI 数据处理
在Linux中,如何使用awk和sed进行文本处理?
在Linux中,如何使用awk和sed进行文本处理?
|
3月前
|
存储 Linux BI
Linux 三剑客 grep、sed、awk
Linux三剑客`grep`、`sed`和`awk`是强大的文本处理工具。`grep`用正则表达式搜索匹配行;`sed`是流式编辑器,处理文本流而不直接修改原文件;`awk`则用于灵活的文本分析和报告生成。例如,`grep`可查找匹配模式,`sed`可以删除文件内容,而`awk`能提取特定字段。通过组合使用,它们能高效解决复杂文本任务。
50 1
|
2月前
|
存储 Unix Linux
探索Linux中的sed命令:强大的文本处理工具
`sed`是Linux/Unix的流编辑器,用于文本替换、删除、新增等操作,无需直接编辑文件。它逐行处理输入,存储在模式空间,执行脚本后输出。主要特点是非交互、支持正则表达式和简洁语法。示例:`sed 's/apple/orange/g' example.txt`替换文本,`/error/d`删除包含"error"的行,`a\---`在每行后加"---"。使用时注意备份、测试命令和理解正则表达式。