Linux中sed基础

sed是一种流编辑器,它是文本处理中非常重要的工具,能够完美的配合正则表达式使用,功能不同凡响。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。

sed命令常用参数

常用命令

函数命令 说明
1,n 需要操作的行,第一行至第N行
s search 查找替换,这个命令使用最多
a append 添加
i insert 插入
c 替换
d 删除行
p 打印

还有两个最重要的参数
-n 使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN 的数据一般都会被列出到终端上。但如果加上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来。
-i 直接替换原文件,不加-i都不会修改原文件,只是输出或者放置内存中。

sed常用命令的使用

cat test.txt
111
222
333
444
555
666
777
打印第三行至第五行
sed -n '3,5p' test.txt
333
444
555
删除第三至第五行
sed  '3,5d' test.txt
111
222
666
777
删除第三至第五行并修改原文件
sed -i '3,5d' test.txt
cat test.txt
111
222
666
777
第二行之前添加qqq
sed '2i qqq' test.txt
111
qqq
222
333
444
555
666
777
第二行之后添加qqq
sed '2a qqq' test.txt
111
222
qqq
333
444
555
666
777
第二行替换为qqq
sed '2c qqq' test.txt
111
qqq
333
444
555
666
777

sed最重要的s命令,查找替换

sed "s/查找/替换/g" g表示一行全部替换,默认一行只替换第一个

cat test.txt
111
222
111
444
555
sed "s/1/php/" test.txt
php11
222
php11
444
555
sed "s/1/php/g" test.txt
phpphpphp
222
phpphpphp
444
555

跟正则相似。^表示每一行开始,$表示每一行结束。正则匹配是遵循规范的。

每一行开始加//
sed "s/^/\/\//g" test.txt
//111
//222
//111
//444
//555
每一行行尾加;
sed "s/$/;/g" test.txt
111;
222;
111;
444;
555;

替换满足条件某一个字符

替换每一行的第二匹配字符1,替换成+
sed "s/1/+/2" test.txt
1+1
222
1+1
444
555

多个匹配替换用;隔开

把2替换成+,把4替换成-
sed "s/2/+/g;s/4/-/g" test.txt
111
+++
111
---
555

圆括号子集,在替换结果里面使用\1 \2 \n

cat test.txt
1hello1
222
111
444
555
sed "s/1\(.*\)1/wo\1/g" test.txt
wohello
222
wo1
444
555

常用的项目文件替换

把当前项目中所有文件中的111替换成helloworld
sed -i "s/111/helloworld/g" `grep -rl . *`

原文地址:https://www.cnblogs.com/feixiangmanon/p/12043757.html

时间: 2024-10-03 05:36:09

Linux中sed基础的相关文章

关于linux中sed命令的简单用法

linux中sed的学习和使用 今天突然用到了sed这个命令,就即兴学习了一波突然感觉这个功能还是很强的.sed在#man sed下文档查看解释的是:用于过滤和转换文本的流编辑器.即如下图: 我自己用过这个命令之后感觉对于文档来说可以显示某个区间行,显示结果还可以在段前后添加内容删除,替换内容.但是最后才发现,怎么还能直接修改到文件里不仅仅是显示出来,文件内容直接被修改了. 下面就一一介绍这个有趣的命令,莫急莫急一个一个来. 首先找个文件(没用的文件且有内容,搞坏了系统文件可不好玩了)来当测试文

linux中sed工具的使用

sed 本身也是一个管线命令,而且 sed 还可以将数据进行取代.删除.新增.撷取特定行等等的功能. $ sed [-nefr] [动作] 选项与参数: -n :使用安静(silent)模式.在一般 sed 的用法中,所有来自 STDIN 的数据一般都会被列出到屏幕上. 但如果加上 -n 参数后,则只有经过 sed 特殊处理的那一行(或者动作)才会被列出来. -e :直接在命令行界面上进行 sed 的动作编辑: -f :直接将 sed 的动作写在一个文件内, -f filename 则可以执行

linux中sed的用法

sed命令行格式为:         sed [-nefri]  'command'  输入文本/文件 常用选项:        -n∶取消默认的输出,使用安静(silent)模式.在一般 sed 的用法中,所有来自 STDIN的资料一般都会被列出到屏幕上.但如果加上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来        -e∶进行多项编辑,即对输入行应用多条sed命令时使用. 直接在指令列模式上进行 sed 的动作编辑        -f∶指定sed脚本的文件

linux中sed命令的使用(绝对精华版)

sed命令是linux或者shell编程中常用的筛选.替换命令,如果能熟练使用sed则对经常使用的人来说在工作上是非常有帮助的 下面把sed主要的用法列出来(有错误的地方大家可以指正): p命令只打印第三行,没有-n会在第三行后多打印第三行:sed -n '3p' filename 只打印最后一行:sed -n '$p' filename 只打印10到20行(包括10和20行,若后面数字小于前面数字,则只打印前面数字的行):sed -n '10,20p' filename 打印包含My在行尾的行

linux中sed学习小结

sed行处理工具 1.显示文件中匹配行 cat tmp.txt|sed -n '/匹配字符正则/p' (-n是不打印全部文件) 2.显示文件第几行 cat tmp.txt|sed -n '1p' --第一行-- cat tmp.txt|sed -n '1,3p' --一到三行-- 3.替换文件中字符 cat tmp.txt | sed 's/ee/ff/' 或者 sed 's/ee/ff/' tmp.txt --将tmp.txt文件中每行第一个匹配的ee替换为ff,不改变原文件-- cat tm

linux中sed用法

一.sed命令介绍: 1.含义:Stream Editor文本流编辑,sed是一个"非交互式的"面向字符流的编辑器.能同时处理多个文件多行的内容,可以不对原文件改动,把整个文件输入到屏幕,可以把只匹配到模式的内容输入到屏幕上.还可以对原文件改动,但是不会再屏幕上返回结果. 2.功能:主要用来自动编辑一个或多个文件,简化对文件的反复操作,编写转换程序等 3.参考:http://www.gnu.org/software/sed/manual/sed.html 二.sed用法 1.语法格式:

简述linux中sed命令

sed命令:Stream EDitor 流编辑器 sed命令的工作流程: sed会复制原文件中的一行或者多行,逐行进行操作.首先会将该行的内容放入到模式空间内,在模式空间内进行定界或者正则表达式匹配操作. a.如果该行内容不符合正则表达式或定界,该内容则被判断为No,进行标准输出. b.如果该行内容符合正则表达式或定界,该内容则被判断为Yes,进行编辑(包括标准输出). sed中模式空间和保持空间中的内容会进行会换,这种会换会使文件内容进行多次的筛选编辑,完成复杂的任务.   一般情况下,sed

Linux中iptables基础命令

防火墙(Firewalld)是一种隔离工具,防范与非授权的访问,使主机更安全.它主要工作与网络或主机的边缘,对于进出本网络或主机的通信报文根据事先定义好的规则进行匹配检测:对于能够被规则所匹配到的报文做出相应的处理. 防火墙的分类: 主机防火墙:工作范围是单个主机 网络防火墙:工作范围是整个网络:网络防火墙中还可以包含主机防火墙 防火墙的实现方式: 硬件防火墙:NetScreen.CheckPoint 软件防火墙:iptables 本文所介绍的iptables就是Linux的软防火前的实现. i

linux中sed的用法详解(对行数据的添加、删除等)

sed使用语法 [[email protected] test]# sed --help 用法: sed [选项]... {脚本(如果没有其他脚本)} [输入文件]... -n, --quiet, --silent                 取消自动打印模式空间 -e 脚本, --expression=脚本                 添加"脚本"到程序的运行列表 -f 脚本文件, --file=脚本文件                 添加"脚本文件"到