Linux正则表达式

本文介绍了Linux系统中常用的文本处理工具,包括grep用于搜索特定模式的行,sed支持流编辑功能,awk以行为单位进行处理并能进行复杂的数据操作,以及diff和cmp用于文件对比。这些工具在Linux环境中对于日志分析、数据处理等任务非常实用。
摘要由CSDN通过智能技术生成

Grep

查找
grep [-A n] [-B m] [–color=auto] str filename
-A n:显示后n行
-B m:显示前m行-你
-n:显示行号
-v:反向选择
-i:忽略大小写

[]:至少匹配[]内的一个字符
^:在中括号内表示不含[]内字符,中括号外表示以字符开头
{n,m}:匹配n到m个字符
.:随意一个字符
*:重复0次或多次
PS:*在通配符中表示0到无限多个任意字符
ls -l a
=ls | grep ‘^a’
*

sed

sed [参数] 动作
-n: 只显示经过sed处理的行
-e:直接在命令行模式进行sed动作编辑

-f:直接将sed动作写在一个文件内,-f filename 可以执行文件内的动作
-r:sed动作扩展到正则表达式语法
-i:直接修改文件内容,而不是输出到屏幕

动作说明:
[n1,[n2]] function
n1,n2:行数
a str:新增str,新增在下一行
c str:替换,替换n1到n2之间的行
d :删除
i:插入,插入上一行
p:打印
s:替换,可搭配正则表达式

替换实例 sed ‘s/旧字符/新字符g’
ifconfig | grep ‘inet addr’ | sed ‘s/^.*addr://g’ | sed ‘s/Mask.*$//g’

扩展正则表达式

在这里插入图片描述

awk数据处理工具

awk以行为一次处理单位,字段为最小处理单元
awk ‘类型条件1{动作1} 条件类型2{动作2} …’ filename
在这里插入图片描述
例:

  1. cat /etc/passwd | awk ‘{FS=“:”} $3<10 {print $1 “\t” $3}’
  2. cat pay.txt|awk ‘NR==1 {printf “%10s %10s %10s %10s %10s\n”,$1,$2,$3,$4,‘Total’}
    NR>=2 {total=$2+$3+$4
    printf “%10s %10d %10d %10s %10.2f\n”,$1,$2,$3,$4,total}’
  3. cat pay.txt|awk ‘if(NR==1) {printf “%10s %10s %10s %10s %10s\n”,$1,$2,$3,$4,‘Total’}
    NR>=2 {total=$2+$3+$4
    printf “%10s %10d %10d %10s %10.2f\n”,$1,$2,$3,$4,total}’

文本比较 diff,cmp

  1. diff
    以行为单位进行比较,同一文件不同版本的比较,一般用在纯ASCII码的文件上
    diff [参数] from-file to-file
    -b:忽略一行中仅有的几个空格
    -B:忽略空白行的区别
    -i:忽略大小写的不同
  2. cmp
    以字节为单位进行比较
    cmp [-s] file1 file2
    -s:将所有的不同点的节点都列出来,默认情况下只输出第一个
  3. patch
    patch文件制作
    diff -Naur old_file new_file > file.patch

patch更新文件:patch -pN <file.patch
patch还原文件:patch -R -pN < file.patch
-p:后面的N表示取消几层目录的意思
-R:代表还原,将新文件还原为旧版本

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值