Linux Command - sed 利用脚本来处理文本文件

  • Linux sed 命令是利用脚本来处理文本文件。
  • sed 可依照脚本的指令来处理、编辑文本文件。
  • Sed 主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。
语法
sed [-hnV][-e<script>][-f<script文件>][文本文件]
参数说明
  • -e <script>或–expression=<script> 以选项中指定的script来处理输入的文本文件。
  • -f <script文件>或–file=<script文件> 以选项中指定的script文件来处理输入的文本文件。
  • -h或–help 显示帮助。
  • -n或–quiet或–silent 仅显示script处理后的结果。
  • -V或–version 显示版本信息。
动作说明
  • a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)。
  • c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行。
  • d :删除,因为是删除啊,所以 d 后面通常不接东西。
  • i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行)。
  • p :打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行。
  • s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g。
举个例子

有一个文件如下:

:cat zhaolu
lu rong ming
zhao lu

将所有出现的lu替换成hello

:sed 's/lu/hello/' zhaolu
hello rong ming
zhao hello

在第二行后插入(注意需要使用\转义空格),这个时候原文件的内容还没有改变:

:sed -e 2a\after\ 2 zhaolu
lu rong ming
zhao lu
after 2
:cat zhaolu
lu rong ming
zhao lu

使用-i改变原文件的内容:

:sed -i 2a\after\ 2 zhaolu
:cat zhaolu
lu rong ming
zhao lu
after 2

删除第三行:

:sed -i '3d' zhaolu
:cat zhaolu
lu rong ming
zhao lu

只显示第一行:

:sed -n '1p' zhaolu
lu rong ming

修改文件:

:cat zhaolu | xargs -n1 | xargs -I {} echo {} >> zhaolu
:cat zhaolu
lu rong ming
zhao lu
lu
rong
ming
zhao
lu

显示有lu的行数(使用-n只显示有字符串的行数):

:nl zhaolu | sed '/lu/p'
     1	lu rong ming
     1	lu rong ming
     2	zhao lu
     2	zhao lu
     3	lu
     3	lu
     4	rong
     5	ming
     6	zhao
     7	lu
     7	lu
:nl zhaolu | sed -n '/lu/p'
     1	lu rong ming
     2	zhao lu
     3	lu
     7	lu

字符串替换,将lu改成82:

:nl zhaolu | sed -n 's/lu/82/p'
     1	82 rong ming
     2	zhao 82
     3	82
     7	82
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值