sed命令常用命令

sed 是一个文本处理工具,可以将数据进行替换、新增、选取等特定工作

格式
sed 选项 动作 文件名

使用sed替换文件中某个域的字段
比如写的一个yaml文件中间有个字段需要修改,可以使用sed在外面命令行进行替换
格式:sed ‘s/原字符/新的字符/‘ 文件名

[[email protected] ~]# sed ‘s/systemctl/service/‘ filetest
root:$1$dDTFylQ3$.vTZKpm7mrra9WMsxvBfW.:18241:0:99999:7
bin:*:17834:0:99999:7:dad
lp:*:17834:0:99999:7ada
sync:*:17834:0:99999:7:::gg
shutdown:*:17834:0:99999:7::da
halt:*:17834:0:99999:7::fsda
nginx:!!:18289::::::daaf
rabbitmq:!!:18297:::::dada
service start mysqld
dadad:nginx:sdada

上面输出的只会输出到屏幕上,并不会修改文件,如果直接替换可以添加-i

[[email protected] ~]# sed -i ‘s/systemctl/service/‘ filetest
[[email protected] ~]# cat filetest
root:$1$dDTFylQ3$.vTZKpm7mrra9WMsxvBfW.:18241:0:99999:7
bin:*:17834:0:99999:7:dad
lp:*:17834:0:99999:7ada
sync:*:17834:0:99999:7:::gg
shutdown:*:17834:0:99999:7::da
halt:*:17834:0:99999:7::fsda
nginx:!!:18289::::::daaf
rabbitmq:!!:18297:::::dada
service start mysqld
dadad:nginx:sdada

sed 参数含义指令

常用命令:
a 新增
c 取代
d 删除
i 插入
p 列印
s 取代

删除某行
如果处理文本的时候需要进行一些行的删除,可以使用d,代表删除
不加sed -i 不会删除,不加只会显示屏幕上

[[email protected]]# sed ‘1d‘ filetest                     //删除第一行
[[email protected]]# sed ‘$d‘ filetest                    //删除最后一行
[[email protected]]# sed ‘1,2d‘ filetest                 //删除第一行到第二行
[[email protected]]# sed ‘3,$d‘ filetest                  //删除第三行到最后一行

显示某行
比如处理文本的时候需要提取文本的某个某行

[[email protected]]# sed -n ‘1p‘ filetest                //显示第一行
[[email protected]]# sed -n ‘$p‘ filetest                //显示最后一行
[[email protected]]# sed -n ‘1,2p‘ filetest            //显示第一行到第二行
[[email protected]]# sed -n ‘3,$p‘ filetest            //显示第三行到最后一行

使用模式进行查询
比如处理比较大的文本想找出这个字段,那么直接可以使用-n 参数显示,动作指定需要提取的关键词,p进行打印

[[email protected]]# sed -n ‘/bin/p‘ filetest        //查询包括关键字bin所在所有行

[[email protected]]# sed -n ‘/\$/p‘ filetest
service start mysqld$

//查询包括关键字$所在所有行,使用反斜线\屏蔽特殊含义,不然识别不出

新增一行或者多行字符串
比如处理文本进行添加字段,并指定添加到某行,可以使用a,是增加,1a就是在第一行下去增加,如果字段比较多可以使用在vim中使用set nu,显示行号,或者直接在命令行使用cat -n 直接显示行号,在命令行使用sed ‘行数a xxxxxx 文件名
在第一行的下面新增一行

[[email protected] ~]# sed ‘1a sed is very useful‘ filetest
bin:*:17834:0:99999:7:dad
sed is very useful
lp:*:17834:0:99999:7ada
sync:*:17834:0:99999:7:::gg
shutdown:*:17834:0:99999:7::da
halt:*:17834:0:99999:7::fsda
nginx:!!:18289::::::daaf
rabbitmq:!!:18297:::::dada
service start mysqld$
dadad:nginx:sdada%

在第2行与第3行增加sed is very useful

[[email protected] ~]# sed ‘2,3a sed is very useful‘ filetest
bin:*:17834:0:99999:7:dad
lp:*:17834:0:99999:7ada
sed is very useful
sync:*:17834:0:99999:7:::gg
sed is very useful

进行替代行,这里我将第一行替换成kuberntes,1c就是第一行,c就是替换

[[email protected] ~]# sed ‘1c kubernetes‘ filetest
kubernetes
lp:*:17834:0:99999:7ada
sync:*:17834:0:99999:7:::gg
shutdown:*:17834:0:99999:7::da
halt:*:17834:0:99999:7::fsda
nginx:!!:18289::::::daaf
rabbitmq:!!:18297:::::dada
service start mysqld$
dadad:nginx:sdada%

将这个文本的最后一行添加jenkins,$就是最后一行,a是添加

[[email protected] ~]# sed -i ‘$a jenkins‘ filetest
[[email protected] ~]# cat filetest
hellp
sync:*:17834:0:99999:7:::gg
shutdown:*:17834:0:99999:7::da
halt:*:17834:0:99999:7::fsda
dadad:nginx:sdada%
jenkins

删除匹配的行,匹配的jenkins这个行,进行删除

[[email protected] ~]# sed -i ‘/jenkins/d‘ filetest
[[email protected] ~]# cat filetest
hellp
sync:*:17834:0:99999:7:::gg
shutdown:*:17834:0:99999:7::da
halt:*:17834:0:99999:7::fsda
dadad:nginx:sdada%

匹配文本中带#的并删除掉,这里使用^以#开头/d是删除

[[email protected] ~]# cat filetest
#hellp
#sync:*:17834:0:99999:7:::gg
#shutdown:*:17834:0:99999:7::da
halt:*:17834:0:99999:7::fsda
dadad:nginx:sdada%
[[email protected] ~]# sed -i ‘/^#/d‘ filetest
[[email protected] ~]# cat filetest
halt:*:17834:0:99999:7::fsda
dadad:nginx:sdada%

删除文本中每行的首数字

[[email protected] ~]# cat filetest
1fghjkl
2ghjkl;‘
3fghjkl;
4dfghjkl;
[[email protected] ~]# sed -i ‘s/^[0-9]//g‘ filetest
[[email protected] ~]# cat filetest
fghjkl
ghjkl;‘
fghjkl;
dfghjkl;

原文地址:https://blog.51cto.com/14143894/2471771

时间: 2024-08-29 09:05:41

sed命令常用命令的相关文章

grep,awk和sed的常用命令和语法

Grep的常用命令语法 1. 双引号引用和单引号引用在g r e p命令中输入字符串参数时,最好将其用双引号括起来.例如:“m y s t r i n g”.这样做有两个原因,一是以防被误解为 s h e l l命令,二是可以用来查找多个单词组成的字符串,例如:“jet plane”,如果不用双引号将其括起来,那么单词 p l a n e将被误认为是一个文件,查询结果将返回“文件不存在”的错误信息.在调用变量时,也应该使用双引号,诸如: g r e p“$ M Y VA R”文件名,如果不这样,

渗透命令常用命令

IPC$入侵常用命令 当然假设管理员账户名密码已经得到了net use \\ip\ipc$ "密码" /user:"用户名" --密码和用户名如果没有空格也可以不加引号,另外\ipc$也可以不写,如下所示:net use \\ip 密码 /user:用户名sc \\ip config tlntsvr start= auto --注意start=后面有个空格sc \\ip start tlntsvrtelnet ipinput username passwd,thus

02-命令篇——基础命令&常用命令

基础命令 docker 启动与停止 启动docker systemctl start docker 停止docker systemctl stop docker 重启docker systemctl restart docker 查看docker状态: systemctl status docker 开机启动: systemctl enable docker 查看docker概要信息: docker info 查看docker帮助文档 docker --help 常用命令: 1.查看镜像 doc

Linux命令常用命令

1 .创建文件夹 mkdir [选项] 文件夹名称 命令中的[选项]一般有以下两种: -m  用于对新建目录设置存取权限,也可以用 chmod 命令进行设置. -p  需要时创建上层文件夹(或目录),如果文件夹(或目录)已经存在,则不视为错误. 2.删除文件夹 格式:rm [选项] 文件夹名称 命令中的[选项]一般有以下几种: -i 删除前逐一询问确认. -f 即使原档案属性设为唯读,亦直接删除,无需逐一确认. -r 将目录及以下之档案亦逐一删除. rm -rf deleteFile 递归删除目

Linux基础命令--常用命令工具

1 cd 切换工作目录 [[email protected] ~]# cd /usr/local/    #切换到目录/usr/local下 [[email protected] local]# cd ..       #切换到上一级目录 [[email protected] usr]# cd -        #返回到/usr/local下 /usr/local 2 touch 创建或修改文件 [[email protected] ~]# touch test.txt 在当前目录下,若果不存在

学习linux-基础六(常用命令:cp,mv,rm)

一.cp用于文件拷贝,分为单源文复制和多源复制 单源复制语法:cp [options]-[-t] source dest . 注意事项: 1如果dest不存在,则事先创建此文件,并复制源文件的数据流至dest中. 2如果dest是非目录文件,则会覆盖目标文件. 3如果dest是目录文件,则先在dest目录下创建一个与源文件同名的文件并将源文件数据流复制过来. cp /tmp/ou/111.txt文件到/etc/hh目录下 [[email protected] testdir]# mkdir /t

Android之——iptables常用命令

转载请注明出处:http://blog.csdn.net/l1028386804/article/details/47356011 iptables常用命令 常用命令列表: 命令 -A, --append 范例 iptables -A INPUT ... 说明 新增规则到某个规则炼中,该规则将会成为规则炼中的最后一条规则. 命令 -D, --delete 范例 iptables -D INPUT --dport 80 -j DROP iptables -D INPUT 1 说明 从某个规则炼中删

windows常用命令整理

查看帮助信息 命令 /? 常用命令 ipconfig 查看网络信息 cls 清屏 chkdsk 查看磁盘状态 date 查看时间.修改时间 dir 查看目录中的文件和子目录 del 删除文件 find 查看文件中搜索字符串 findstr find的拓展命令,功能强大 help 查看帮助信息,同 /? MD或MKDIR 创建目录 RD 删除文件 copy 复制文件 xcopy 复制文件和目录树 diskcopy 将一个软盘的内容复制到另一个软盘 rename 重命名文件 set 设置环境变量 e

git提交项目常用命令及git分支的用法

1.第一步首先从git托管平台clone项目,我这里就使用idea为例: 填写git的url与存放本地目录名及项目名 2.如果你对项目进行了一些修改,就可以执行git命令,进行提交. 有两种方法: 1.使用idea自带的图形界面进行操作.选中修改过的文件,右键选择git--add添加到本地仓库. 再选择git --commit file进行提交 再进行commit和push,提交到远程仓库 2.使用命令行方式,个人比较喜欢这种方式. 首先打开terminal 执行步骤是一样的: 1.git st