shell基础操作(四)之三剑客grep、sed,awk

grep

参数说明
-b将二进制文件作为文本进行匹配
-c统计与模式匹配的数量
-i忽略大小写
-n显示匹配所在行的行号
-v反选,打印不匹配的内容
-r递归查找
  1. 匹配所有的字母:grep '[[:alpha:]],大写grep '[[:upper:]]',小写grep '[[:lower:]]'
  2. 匹配所有的数字:grep '[[:digit:]]',grep '[0-9]'

sed流编辑器

 

参数说明
-n只打印受影响的行,默认全部
-f filename指定执行filename文件中的命令
-r使用正则表达式
-i直接修改文件的内容

sed格式:sed 参数 命令 
n1,n2表示从n1行到n2行执行命令
n1,~表示从n1开始全部行

命令说明
s行内替换
c整行替换
a插入到指定行后面
i插入到指定行前面
p打印指定行
d删除指定行

awk文本处理语言

#建立一个test文件,以下是内容
I like linux
www.baidu.com
 含义样例样例解析
{action}awk要执行的行为awk '{print}' test打印test内的内容
NR表示当前处理的行数

awk '{ if (NR==1) {

print $1 "\n" $2 "\n" $3

} else { print }}'  test

表示处理到第一行的时候
NF表示当前处理的字段数
OFS表示输出时候的字段分隔符,默认为空格awk '{ if (NR==1) {OFS = "\n"; print $1, $2, $3} else { print }}' testOFS以“\n”作为输出时候的分隔
ORS表示输出时候的记录分隔符,默认为\n
$N表示引用相应字段,$0表示整行两个动作写在同一行的话需要用;分隔开
-F预先指定字段分隔符awk -F'.'  '{print $1,$2}' test表示以 . 为分隔符
-v预先定义awk的变量-v var=value 
BEGIN在其他行为前执行

awk 'BEGIN{

FS="."

OFS="\t"

}{

if(NR==2){print $1,$2,$3}}' test

输入的文本以 . 分割,输出的结果以\t分隔输出

 简单的文本处理

命令参数解析
tr-d ‘olh’删除文本中所有的o,l,h
-s ‘l’对文本的字符串‘l’去重,比如hello,去重结果为helo
col-xcat无法将tab键转为空格,加上col -x即可换为空格
joinjoin file1 file2将file1和file2包含相同内容的那行合并
paste-d指定分隔符,默认为Tab
-s每个文件为一行

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值