shell-sed

本文详细介绍了sed命令,这是一个非交互式的字符流编辑器,用于处理文本文件而不直接修改源输入。文章涵盖了sed的基本语法、常用选项、地址定位(模式匹配)以及各种动作(子命令),如p、d、i、a、c和s等,用于打印、删除、插入、追加、修改和替换文本。此外,还提到了正则表达式在匹配和替换中的应用,以及如何使用sed进行文件的直接修改。示例丰富,适合初学者掌握sed命令。
摘要由CSDN通过智能技术生成

希望能帮助到大家!

1、sed命令概述
sed:文本编辑工具(非交互式) 流编辑器
sed优点:1.不会导致内存不足
                2. sed 是一个<非交互式>的<字符流编辑器>
                3.Sed 不是在<源输入>上直接进行处理的

2、sed命令语法:
sed [options]    script     filename
sed   [选项]    '地址命令'(模式匹配)   文件名

3、常用选项:
-r    启用扩展正则表达式
-e    执行多个脚本(动作)
-n    抑制:sed命令的<标准输出>
-i     直接修改源文件
注意:不要同时使用<-n 和 -i>选项,否则,<源文件>的内容将受到极大的破坏

4、地址定位(模式匹配)(哪些行需要处理)
匹配地址两种方式:行数和正则
1)通过行数匹配范围
单独行数:n (指定单独行数    $表示最后一行)
  输出文件第3行:sed -n '3p'  1.txt
 
范围:       n,m  (指定n行到m行)
  输入文件第1行到第3行  sed -n '1,3p' 111.txt

                  起始行~步长 ()

                  如:2~2 从第2行开始,每隔1行(2,4,6,8.....)
                   起始位置,+N    如:3,+5   处理3-8行

2)通过正则来匹配范围
  /正则/,/正则/  第一个正则不存在,不会匹配任何信息
                          第二个正则不存在,一直匹配到结尾


5.动作(子命令)
p  打印  (需要加-n选项)
!  取反  (放在命令前)
例:输入除了1到2行的内容:sed -n '1,2!p' 3.txt
d  删除   (不需要加-n选项)
  例:删除2到4行:sed  '2,4d' 3.txt

i;插入内容
sed  ‘地址(/正则/)i\插入的内容’文件名
例:在3.txt文件中1开的行前插入一行aaa的内容
sed '/^1/i\aaa' 3.txt

多行内容可以添加换行符:\n

a:追加内容
sed  ‘地址(/正则/)a\追加的内容’文件名
sed '/^1/a\bbb' 3.txt

c:修改内容
sed  ‘地址(/正则/)c\替换匹配范围的内容’文件名

s:查找并替换
语法:sed '模式匹配s/被替换的内容/替换以后的内容/'  文件
                           's///'
注意:子命令i、a、c放在匹配后,s放在匹配前

例:将ssh服务端口88换成89号端口
sed 's/88/89/' /etc/ssh/sshd_config  (直接修改源原件 sed -i)

注意:s默认情况下只会替换每行第一个匹配的内容
修饰符:g(全局替换)每行出现的所有的匹配内容都会被替换

例:sed 's/1/a/' 2.txt   只会把每行的第一个1替换成a
      sed 's/1/a/g' 2.txt  会把每行的所有的1都替换成a

   选定替换的范围(模式匹配)
sed '1,3s/1/a/g' 2.txt     把1到3行的所有的1都替换成a

n(数字):指定每行替换第几个

i:  替换时忽略原内容的大小写
sed '1,3s/a/1/gi' 2.txt     把1到3行的所有的a和A都替换成1

&:引用原内容里匹配的所有内容


了解:y 替换(新旧字符长度一致)
          r:将指定的文件添加到指定的位置
        sed  '地址r 要导入的文件'  正在编辑的文件   
         w:将地址指定的范围内的行另存至其他指定文件中


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值