【Linux】sed编辑器一

一、基本介绍

sed编辑器也叫流编辑器(stream editor),它是根据事先设计好得一组规则编辑数据流。

交互式文本编辑器(如Vim)中,可以用键盘命令交互式地插入、删除或替换文本数据。

sed编辑器是根据命令处理数据流中的数据,这些命令来自于命令行输入,或者来自于保存在命令文本文件中。它可以执行以下操作:

  1. 从输入中读取一行数据;
  2. 根据所提供的编辑器命令匹配数据;
  3. 按照命令修改数据流中的数据;
  4. 将新的数据输出到STDOUT

sed编辑器匹配并针对一行数据执行所有命令后,就会读取下一行数据并重复这个过程,在它处理完数据流中的所有行后,就结束运行。

由于命令是按顺序逐行执行的,因此sed编辑器只需对数据流处理一遍(one pass through)即可完成编辑操作。这使得sed编辑器比交互式编辑器快得多,还可以快速完成对数据的自动修改。

格式:

sed options script file

script:制定了应用于流数据中的单个命令。如果需要多个命令,可以使用 -e 选项在命令行中指定;或者使用 -f 选项在单独的文件中指定。

sed命令选项
-e commands 在处理输入时,加入额外的sed命令
-f file 在处理输入时,将file中指定的命令添加到已有的命令中
-n 不产生命令输出,使用p(print)命令完成输出

二、处理文本

1、在命令行中使用单个sed编辑器命令

默认情况下,sed编辑器会将指定的命令应用于STDIN输入流中,所以可以直接将数据通过管道符传入sed编辑器进行处理。

替换命令:s;使用它可以将斜线间指定的第二个字符串替换掉第一个字符串。

echo "这是1个测试" | sed 's/1个/2个/'

 批量替换文件中某个字符:

sed 's/成都/苏州/' test.txt

而且,sed编辑器并不会修改文本文件的数据,它只是将修改后的数据发送到STDOUT

查看文本文件内容,依然未变。

2、在命令行中使用多个sed编辑器命令

 如果想执行多个命令,可以使用 -e 选项。

多个命令都会应用于文件的每一行数据,命令之间必须要用分号(;)分隔开,并且命令末尾和分号之间不能出现空格。

sed -e 's/贵州/成都/;s/北京/广州/' test.txt

也可以用bash shell中的次提示符来分隔命令。

必须要在闭合的单引号所在行结束命令。因为bash shell一旦发现了闭合单引号,就会执行命令。

3、从文件中读取sed编辑器命令

 可以使用 -f 选项来读取文件中的sed编辑器命令。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值