每日一道shell练习(09)——sed处理

本文介绍如何使用sed命令处理文本文件,具体实现包括删除特定行的英文内容及移除指定行内的所有英文字符,并通过示例脚本展示了sed命令的强大功能。

1. 习题

对一个文件,1至5行删除带有英文的行,6至10行删除里面的英文字符;

2. 分析

这种要求,用sed命令就可以解决了,主要用到匹配替换的知识。

3. 脚本

#!/bin/bash

sed  -n '1,5p'  a.txt  |  sed  '/[a-zA-Z]/d'
sed  -n '6,10p' a.txt  |  sed  's/[a-zA-Z]//g'
sed  -n '11,$p' a.txt

前两个要求,必须使用行号匹配。主要sed是一个流编辑处理器,它是一行一行地接收输入数据,然后再处理。

-n 和 -p 选项配合使用,就是只输出匹配的内容。所以,在前两行命令的意思就相当于,匹配到对应的行后,只处理这些行,然后通过管道,把它们传给后边的sed命令处理。

第三行的sed命令,就是把不用处理的文本都直接输出屏幕。这样,在屏幕上看来,就相当于完整地处理了整个文本的内容了。

转载于:https://blog.51cto.com/hellocjq/2121562

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值