壳牌文本中如何使用sed

  介绍

小编给大家分享一下壳文本中如何使用sed,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!

sed是流编辑器的缩写,流编辑器,主要用于对标准输出或文件进行处理。

语法:

stdout  |, sed [选项],“pattern  command"   sed [选项],“pattern  command", file1

<强>常用选项(选项)

#, -n 只打印静默模式匹配行,而不输出原行   #,p 是打印命令   ?,sed  & # 39;/hello/p # 39; helloWorld.sh   # !/bin/bash      bash HELLO    echo “hello  world"   echo “hello  world"   ?,sed  -n  & # 39;/hello/p # 39; helloWorld.sh   echo “hello  world"      #,-e 追加一组编辑命令   ?,sed  -n  -e  & # 39;/hello/p # 39;, -e  & # 39;/hello/p # 39; helloWorld.sh   bash HELLO    echo “hello  world"      #,-f 把所有编辑命令保存在文件中,适用于复杂编辑操作   ? cat  edit.sed/hello/p   ?,sed  -n  -f  edit.sed  hello.md      #,-E (或,- r)支持扩展正则表达式   ?,sed  -n  -E  & # 39;/你好|你好/p # 39; helloWorld.sh   bash HELLO    echo “hello  world"      #,小姐;直接修改源文件内容   #,s 是替换命令   #,这里是吧,helloWorld.sh 文件中所有的,hello 改为,hello123   sed  -n 小姐;& # 39;s/hello/hello123/舌鳎# 39;helloWorld。sh

<>强匹配模式(模式)

匹配模式说明10命令第十行10,20命令第10到20行10 + 5命令第10到16行/pattern1/命令匹配pattern1对应的行/pattern1/,/pattern2/命令从pattern1对应的行开始,到pattern2的行10/pattern1/命令从第十行开始,到pattern1的行/pattern1/10命令从pattern1对应的行开始,到第十行

<强>常用编辑命令(命令)

查询

<李>

p打印匹配的内容

增加

<李>

一个字符串行后追加

<李>

我字符串行前追加

<李>

r文件从外部文件读入,在匹配的行后追加

<李>

w newfile中将匹配的行写入外部文件

删除

<李>

d删除

修改

<李>

s/老/新替换行内第一个旧为新

<李>

s/老/新/g行内所有老替换为新

<李>

s/老/新/2 g从第2行开始到文件末尾的所有老替换为新

<李>

s/老/新/ig行内所有老替换为新的,忽略大小写

示例:

#,删除以,sys 开的头,并且以/sbin/nologin 结尾的行   ?,sed 小姐;& # 39;/^ sys . * \/sbin \/nologin美元/d # 39; passwd_bak      #,删除注释行,空行   sed 小姐;& # 39;/[空白:]* #/d;/^ $/d # 39; passwd_bak      #,查找在以,vagrant 开头的行,下一行追加内容   ?,sed 小姐;& # 39;/^的流浪汉/a 这是追加的一行内容& # 39;passwd_bak      #,把所有的,root 替换为,root123   ?,sed 小姐;& # 39;s/根/root123/搞笑# 39;passwd_bak      #,在所有以,sys 开的头,以,nologin 结尾的行,尾部追加,_666   #,其中,,,表示前面正则匹配到的内容   ?,sed 小姐;& # 39;s/^ sys . * nologin/美元,_666/舌鳎# 39;passwd_bak      #,把所有以,sys 开的头,以,nologin_666 结尾的行,改为   #,以,SYS_ 开的头,以,_777 结尾,其中,\ 1,表示前面括号中匹配的中间部分内容   ?,sed 小姐;& # 39;s/^ sys \ (. * \) nologin_666美元/SYS_ \ 1 _777/舌鳎# 39;passwd_bak      1 #,把,,~,10,行所有的,sys 改为,系统   ?,sed 小姐;& # 39;1,10 s/sys/sys/搞笑# 39;passwd_bak      #,统计,my.cnf 文件中,mysqld 的子配置项数量   #,sed 查找从,(mysqld),到,下一个。[*],之间的行   #,grep  -v 过滤注释,空行和,[*]。行   #,wc  -l 统计最后的行数   sed  -n “/^ \ [mysqld \] $//^ \[* \]。美元/p",/etc/my.cnf  |, grep  -Ev  & # 39; ^ $ | [#;] | ^ \ [。* & # 39;, |, wc  - l

注意:如果匹配模式中存在变量,则建议使用双引号,如sed -“s/OLD_STR/NEW_STR美元/g"passwd_bak

以上是“壳牌文本中如何使用sed”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

壳牌文本中如何使用sed