linux命令sed -i(linux命令sed替换字符串详解)

本文主要介绍linux命令sed-i(linux命令sed替换字符串的详细解释),下面一起看看linux命令sed-i(linux命令sed替换字符串的详细解释)相关资讯。
sedsedsed命令seded全称是:流编辑器(stream editor。linux sed命令使用脚本处理文本文件,sed可以根据脚本的指令处理和编辑文本文件。sed主要用于自动编辑一个或多个文件,简化文件的重复操作,编写转换程序。
在处理数据时,sed从输入源一次读入一行,并将其保存在所谓的模式空间中。所有sed转换都发生在模式空间中。转换由命令行或外部sed脚本文件中提供的单字母命令来描述。大多数sed命令前面都可以有一个地址或地址范围来限制它们的范围。
选项含义-e script command该选项会将后跟脚本命令的脚本命令添加到现有命令中。-f脚本命令文件该选项会将后续文件中的脚本命令添加到现有命令中。-n默认情况下,sed会在指定执行所有脚本后自动输出处理后的内容,该选项会阻止启动输出,需要使用print命令来完成输出。-i这个选项会直接修改源文件,所以要谨慎使用。示例:
查看passwd文件的第5到第8行。
【root @ honey-master ~】sed-n ;5,8便士;;/etc/passwdlp: x: 4 : 7 : :/var/spool/lpde cho 1-@ . com/sbin/nologinsync: 5 : 0 : sync :/sbine cho 1-@
[root@蜂蜜大师~]sed-n ;/root/p ;/etc/passwdroot: x: 0 : 0 : root:/
【root @ honey-master ~】sed-n ;/root/i p ;/etc/passwdroot: x: 0 : 0 : root:/root:/bin/bashoperator: 11 : 0 :/root:/sbin/nologin直接查看passwd文件。
【root @ honey-master ~】sed ; /etc/passwdroot: x: 0 : 0 : root:/root :/bin/bashbin: 1 : 1 :bin:/bin:/sbin/nologinda:/sbin/nologin.......,唐 此时不要配置-n参数,因为-n用于取消自动打印,配合搜索规则。
但是p标签会输出修改过的行,两者匹配的效果就是只输出replace命令修改过的行。
在passwd文件中找到带有/bin/bash字符串的行。
【root @ honey-master ~】sed-n ;\ %/bin/bash % p ;/etc/passwdroot: x: 0 : 0 : root:/root:/bin/bashpostgress: 1000 : 1000 : :/hom:/bin/bashflags标注n1到512之间的数字。这意味着要替换的指定字符串只有在出现多次时才会被替换。例如,有三个a s在一行中,但是用户只想替换第二个a,所以使用这个标签。g替换数据中所有匹配的内容。如果没有g,只有第一次匹配成功才会被替换。例如,如果有三个a s在一行数据中,只有第一个a会被替换;p打印与replace命令中指定的模式相匹配的行。该标记通常与-n选项一起使用。w file将缓冲区的内容写入指定的文件file;替换为正则表达式匹配的内容;\n匹配第n个子字符串,该子字符串先前由模式中的指定。\转义(转义替换部分包括:,\等。).我打印数据流中的文本和不可打印的ascii字符(如终止符s和tab \t)y字符转换,转换后的字符必须长度相同。c将选中行的内容替换为指定的内容d进行删除,因为是删除,所以d后面通常不跟任何thump删除/data/passwd中用于打印输出的第2 ~ 5行。
可以看到,这个删除打印在输出时只过滤掉了源文件的2-5行,并没有对文件做任何修改。如果我想修改这个文件,我将使用sed -i命令。
删除文件sed-i ;20d ;密码。
删除文件前的备份命令
sed-i . bak ;20d ;在文件passwd的第四行后添加一个新字符串。伊万里
[root @ honey-master data]sed-e4a \ ivanlee passwdroot: x: 0 : 0 :/root :/bin/bashbin: 1 : 1 : 1 :bin:/binecho 1--;伊万利 在文件的第一行之前。
[root @ honey-主数据]sed ;1i \华为 密码huaweiroot: x: 0 : 0 : root :/root :/bin/bashbin: 1 : 1 : 1 :/bin :/sbin/nologindaemoncho 1--
如果我想插入 华为 在文件的第一行。
在第一行的开头插入
[root @ honey-master data]sed-i ;1i华为和华为;;passwd[root @ honey-master data]cat-n passwd 1华为2 root : x: 0 : 0 :/root :/bin/bash 3 bin: 1 : 1 : 1 :bin:/binecho 1/spool/lpd:/sbin/nologin 7 sync : x: 5 : 0 : sync :/sbine cho 1-@ . com/bin/sync 8 shutdown: 6 : 0 : shutdown:/sbin:/sbin/shutdown在第二行末尾插入
[root @ honey-master data]sed-i ;2a伊万利 passwd[root @ honey-master data]cat-n passwd 1华为2 root : x: 0 : 0 :/root :/bin/bash 3 ivan lee 4 bine : 1 : 1 : 1 echo 1 :/bin:/sbin/nologina和我的相似之处在于可以形成
sed -e:可以同时执行多个命令。
[root @ honey-master data]sed-e/华为/vivo/g;伊万里/安娜恩/g ;passwd 1 vivo 2 root : x: 0 : 0 : root :/root :/bin/bash 3 annnnn 4 bin: 1 : 1 :bin:/bin:/sb. com 2 :daemon:/sbine cho 1-@ . com/sbin/nologin[root @ honey-master data]猫passwd 1华为2 root : 0 : 0 : root :/root :/bin/bash 3 ivan lee 4 bin:
[地址]s/模式/替换/标志
其中,address表示要操作的具体行,pattern表示要替换的内容,replac:/-/3 ;passwdhuaweiroot: x: 0-0:root:/ root :/bin/bashivanleebin: 1-1:bin:/bin:/sbin/ nologindaemon: 2-2 : daemon:/sbine cho 1-@ . com/sbine cho 1-@ . com/sbin/nolog在[root @ hon:/-/1 ;passwdhuaweiroot-x: 0 : 0 : root :/root:/bin/bashivanleebin-x: 1 : 1 :/bin:/sbin/nologin daemon-xe: 2 : 2 : 2 echo 1-@ com因此,s:/-/g ;passwdhuaweiroot-x-0-0-root-/root-/bin/bashivanleebin-x-1-1-bin-/bin-/sbin/nolog in daemon-x-2-2-daemon-/sbin-/sbin/nolog in using w将修改后的内容保存在一个命名文件中。
使用s script命令时,替换类似文件路径的字符串会比较麻烦,而且需要对路径中的正斜杠进行转义,* * sed s//bin/bash//bin/ivansh/g ;密码* *
[root@honey-master data]猫passwd 1华为2 root : x: 0 : 0 : root :/root :/bin/bash 3 ivan l:x:1:1:bin:/bin:/sbin/nologin 5 daemon: x: 2 : 2 : daemon:/sbine cho 1-@ . com/sbin/nologin[root @ honey-master data]sed/\/bin \/bash/\/bin \/ivansh/g ;passwd 1华为2 root : x: 0 : 0 : root :/root :/bin/ivansh 3 ivanlee 4 bin: 1 : 1 : 1 :/bin:
[root @ honey-主数据]sed/\/bin \/bash/\/bin \/ivansh/g ;passwd 1华为2 root : x: 0 : 0 : root :/root :/bin/ivansh 3 ivanlee 4 bin: 1 : 1 : 1 :/bin:-@ . com/sbin/nologin[root @ honey-master data]sed ;3c伊万里_改变 passwd 1华为2 root : x: 0 : 0 : root :/root :/bin/bashivanlee _ changed 4 bin : 1 : 1 : 1 :/bin :/sb
conversion命令将对inchars和outchars的值进行一对一的映射,也就是说,inchars中的第一个字符将被转换为outchars中的第一个字符,第二个字符将被转换为outchars中的第二个字符...这个映射过程将继续,直到处理完指定的字符。如果inchars和outchars的长度不同,sed将生成一条错误消息。
sed y/12345/abcde/ ;passwd a华为b root : x: 0 : 0 : root :/root:/bin/bash c ivanlee d bin: ::bin:/bin:/sbin/nologin e daemonecho 1-@ -@ . com/sbin/nologin[root @ honey-master data]猫passwd 1华为2 root : x: 0 : root :/root:/bin/bash 3 ivan lee 4 bin: 1 : 1 : 1 : 1 :
sed 2q passwd 1华为2根: x: 0 :root:/root:/bin/bash刚输出2。
sed脚本命令的寻址在之前各种脚本命令的介绍中,我们总是忽略了地址部分的介绍。对于每个脚本命令,address用于指示脚本命令作用于文本中的特定行。
默认情况下,sed命令适用于所有文本数据行。如果您只想将命令应用于特定行或某些行,则必须指定地址部分,这可以用以下两种表示:
以数字形式指定行间隔;在文本模式下指定特定的行间距。以下两种格式可用于上述两种形式,即:
【地址】脚本命令或地址{多个脚本命令}在前面的例子中有具体的例子,所以我赢了 这里不再赘述。
以数字形式指定行间隔。当使用数字行寻址时,可以通过文本流中该行的行位置来引用它。sed会将文本流中的第一行编号为1,然后继续将行号分配给后面的行。
在脚本命令中,指定的地址可以是单个的。行号,或由起始行号、逗号和结束行号指定的特定范围内的行。以下是sed命令作用于指定行号的示例:
[root @ localhost ~]# sed ;2s/狗/猫/ ;快速棕色狐狸跳过懒狗快速棕色狐狸跳过懒猫快速棕色狐狸跳过懒狗。如您所见,sed只修改由地址指定的第二行的文本。以下示例中使用了行地址间隔:
[root @ localhost ~]# s——美元符号($):
[root @ localhost ~]# sed ;2美元/狗/猫/ ;快速棕色狐狸跳过懒狗快速棕色狐狸跳过懒猫快速棕色狐狸跳过懒猫快速棕色狐狸跳过懒猫用文本模式指定行间隔。sed允许您指定文本模式来过滤出命令要处理的行。格式如下:
/模式/命令
注意,要指定的模式必须用正斜杠括起来,sed会将该命令应用于包含指定文本模式的行。
例如,如果您只想修改用户演示的默认shell,可以使用sed命令并按如下执行该命令:
[root@localhost ~] grep演示/etc/passwddemeocho 1-@ . com x: 502 : 502 :/home/samantha :/bin/bash[root @ localhost ~]sed ;/demo/s/bash/csh/ ;/etc/passwdroot: x: 0 : 0 : root:/root:/bin/bash...demo : xe: 502 e: 502 e:/hom:/bin/csh...虽然使用固定文本模式可以帮助您筛选出特定的值,但正则表达式允许您创建高级文本模式匹配表达式来匹配各种数据。这些表达式组合了一系列通配符、特殊字符和固定文本字符,以生成可以匹配几乎任何文本形式的简洁模式。
标签:
命令脚本
了解更多linux命令sed-i(linux命令sed替换字符串的详细解释)相关内容请关注本站点。

怎么进入安全模式删除文件(安全模式下怎么删除流氓软件)
oppo手机呼叫转移怎么设置和取消(oppo手机呼叫转移怎么设置不了)
华为云服务器免费一年
微信红包声音怎么关(vivo收红包声音怎么关)
网络共享找不到计算机名字怎么回事(网络共享找不到计算机名字了)
linux命令sed -i(linux命令sed替换字符串详解)
主板短路是什么原因(主板短路还有救吗)
c盘太满了 怎么分判给d盘
电脑内存分盘怎么分区,刚买的笔记本C盘分区怎么分
禁用注册表编辑器命令(禁用注册表编辑的方法)
红米手机怎么授权
阿里云服务器多少钱一台(阿里云服务器最便宜多少钱一年)
电脑开机进不了系统怎么解决(电脑开机进不了系统咋办)
m2固态寿命要比u盘高吗,固态u盘和普通u盘的区别 寿命
Windows硬盘分区,硬盘怎样分区
苹果x死机转圈还发烫正常吗(苹果x死机转圈还发烫咋回事)
组策略禁用windows defender(怎么禁用组策略)
wps合并单元格后文字怎么调整位置(wps合并单元格后,怎么让文字上下居中)
电脑如何查看删除软件记录(怎么删除使用软件的记录)
电脑如何下载正版qq(电脑怎么下载安装qq)