正则表达式(sed、awk)

二、sed
使用sed主要是使用它的查找和提换功能
命令格式 sed -n ‘//‘ p filename 单引号内

创建目录,把passwd文件拷贝进来

只显示我们需要查找的行 -n

指定一个区间打印

实现多个,-e

查找一个文件,不区分大小写都列出来 -I

删除某些行,把剩下的行列出来 d


sed删除选择的行 -i

全局指定替换1,10行 s

s代表替换,加上g代表全局,不加g只会替换本行出现的第一个

调整字符串位置 -r
第一段和最后一段调整位置

给文档前面统一添加一个字符,比如aaa

三、awk
-F选项的作用是指定分隔符,如果不加分隔符,以空格或者tab为分隔符
print为打印动作,$1为第一段 $2为第二段 $3第三段 $0表示所有



打印所有内容


匹配字符或者字符串


打印第一行包含oo的行


多次打印或者多次匹配

条件操作符

、 >=、 < 如果和数字进行比较时,把数字用双括号括起来,那么就不会被认为是数字
而会认为是字符,如果不加双括号则认为是数字
精确匹配

列出第三段大于500的行并打印

!=表示不等于,第七段不等于/sbin/nologin有哪些


可以使用&&和||,分别表示并且和或者


awk内置变量

OFS和-F选项类似,也是定义分割符号,但是它是在输出的时候定义
NR表示行号
NF表示用分隔符分割后一共有多少段

OFS用法:

NF用法:表示多少段,把段号列出来


NR用法:表示多少行,把行号列出来

awk数学运算

没有切割分隔符,可以用OFS定义一下分隔符

精准匹配

awk计算某个段的总和

原文地址:https://blog.51cto.com/13292790/2439494

时间: 2024-10-16 06:25:19

正则表达式(sed、awk)的相关文章

对于Linux正则表达式在sed awk 过滤中的深入浅出

作为初学者,刚刚接触正则表达式,一定是一头雾水,不过没关系,用例子来说明. ==*==*==*==*==*==*==*==*==*==*==*==*==*==*==*==*==*==*==*==*==*==*==*==* 一.先来看看正则表达式是什么: 正则表达式定义: 简单的说,正则表达式就是一套处理字符串的规则和方法,以行为单位对字符串进行处理.通过特殊的符号的辅助,我们可以快速的过滤,替换某些特定的字符串.运维工作中,会有大量访问日志,错误日志,大数据,如何能够快速的过滤出我们需要的内容,

正则表达式解析 & awk/sed/grep实用实例总结文档

##正则表达式特殊字符解析 "^" 匹配行首 "$" 匹配行尾 "^$" 匹配整行为空,空行 grep -v "^$"    打印非空的行 "."  代表且只能代表任意一个字符 "*" 重复0个或多个前面一个的字符.例如"o*",重复一个或多个o ".*"  匹配所有字符.延伸: "^.*" -->以任意多个字符开头.&q

grep,sed,awk与简单正则表达式应用

grep,sed,awk与简单正则表达式应用 这里使用的测试文件是linux /etc/passwd文件,最好是复制一份进行练习,方式对文件内容造成损坏.感觉还是要多练习才能很好的使用,习题这里就不贴了,网上一找一大把. grep:   -o 用作计算出现多少次字段  -c 打印符合要求的行数  -n 在输出符合要求的行的同时也打印行号  -v 打印不符合要求的行  -A 后跟一个数字 ps -A2表示打印符合要求的行及下面两行  -B 后跟一个数字 ps -B2表示打印符合要求的行及上面两行 

十七. 正则以及grep ,sed,awk的简单应用

一.正则表达式:/ / grep,sed,awk 都能解释正则表达式 正则表达式:把一些特殊符号组合到一起描述字符和字符串的方法.^ 以什么开头 grep '^root' /etc/passwd$ 以什么结尾 如能登入系统的所有用 grep 'bash$'/etc/passwd. 任意一个字符 grep '^b.n' /etc/passwd 过滤取到bin的.* 所有字符* 代表前面的字符有0个或者无穷个 grep 'b*' /+ 必须用egrep 或 egrep -E 'ab+'表示前面的字符

Linux的文本编辑diff & sed & awk & grep

grep(关键字: 截取) 文本搜集工具, 结合正则表达式非常强大    主要参数 []    -c : 只输出匹配的行    -I : 不区分大小写    -h : 查询多文件时不显示文件名    -l : 查询多文件时, 只输出包含匹配字符的文件名    -n : 显示匹配的行号及行    -v : 显示不包含匹配文本的所有行(我经常用除去grep本身)    基本工作方式: grep 要匹配的内容 文件名, 例如:    grep 'test' d* 显示所有以d开头的文件中包含test的

LINUX 下 find grep sed awk 的常见基本用法特点

LINUX 下 find grep sed awk 的常见基本用法特点 只为让自己具有更高的水准,这就开始了长达6个月的小白进阶路! 这几天学习linux基础命令有点犯蒙,尤其是对文件查找这块.所有我想把一些我觉得常用的实用的参数项总结下来,大神勿喷哈... 不到之处请大家指教,小女子在此谢过了. 一.find:命令用于查找文件系统中指定的文件,其命令格式为: 1.find pathname -options [ -print  -exec  -ok ... ] (1)find 命令的参数: p

linux sed&awk详解

sed sed为文本处理三剑客之一.本身就是一个管道命令,可以将文件进行增加,修改,删除,选取等操作. 格式:sed [-nrefi] [command] "文本字符串" 选项: -r: 支持扩展正则表达式: -n: 静默模式:(sed有个模式空间和保持空间,默认sed会将执行的结果保存到模式空间里面,而模式空间默认情况是输出在屏幕上,加了-n,则阻止将模式空间的内容输出到屏幕上) -f:/path/to/script_file:从指定的文件中读取脚本并运行 -e script1 -e

sed awk 笔记(二)

都说sed awk 运维人员的必备工具.今天起开始整理相关笔记.首先认识一下这两个东西. 共性:使用相同的语法 [address]/pattern/action/flag 都是面向字符流的.从一个文件一次银行的读取输入.并输出到标准输出.即输入驱动的 都是使用正则表达式进行模式匹配的 都允许用户在脚本中指定指令 所以个人认为有几个方面需要突破:语法.正则.编写脚本的思路 [[email protected] test]#今天写的脚本显示洲及所在州的人名 #! /bin/sh awk -F ",&

Sed&amp;awk笔记之sed篇(转)

Sed是什么 <sed and awk>一书中(1.2 A Stream Editor)是这样解释的: Sed is a "non-interactive" stream-oriented editor. It is stream-oriented because, like many UNIXprograms, input flows through the program and is directed to standard output. Sed本质上是一个编辑器,

20150915 Linux 数组 sed awk

第一部分数组: bash脚本编程:     变量:变量名   ,命名的命名空间     数组:连续的多个独立内存空间:每个内存空间相当于一个变量:         数据元素的引用:数组名[索引] bash 4.0+以后版本支持二种类型:         传统数组(基本数组):索引为数字,从0开始编号:             declare -a ARRAY_NAME         关联数组:索引可以自定义,可以使用任意字符串做索引:             declare -A ARRAY_