正则表达式
grep 命令
选项 |
意义 |
-c |
匹配行的数量 |
-i |
忽略大小写 |
-h |
查询多文件时不显示文件名 |
-l |
只列出匹配的文件名,不列匹配行 |
-n |
列出匹配行,并列出行号 |
-s |
不显示不存在或无匹配的错误信息 |
-v |
显示不包含匹配文本的所有行 |
-w |
匹配整词 |
-r |
递归搜索,搜子目录 |
-E |
支持扩展的正则表达式 |
-F |
不支持正则表达式 |
grep -nE "^\w+@\w+\.\w+$" a.txt
sed命令选项
选项
意义
-n |
不打印所有行到标准输出 |
-e |
将下一个字符串解析为sed编辑命令,如果只传递一个 -e可以省略 |
-f |
正在调用sed脚本文件 |
sed文本定位方式
选项
意义
x |
x为指定行号 |
x,y |
指定从x到y的行号范围 |
/pattern/ |
查询包含模式的行 |
/pattern/pattern/ |
查询包含两个模式的行 |
/pattern/,x |
从与pattern的匹配行之间的行 |
x,/pattern/ |
从x号行到与pattern的匹配行之间的行 |
x,y! |
不包含x和y行号的行 |
sed编辑命令
选项
意义
p |
打印匹配行 |
= |
打印文件行号 |
a\ |
在定位行号之后追加文本信息 |
i\ |
在定位行号之前追加文本信息 |
d |
删除定位行 |
c\ |
用新文本替换定位文本 |
s |
使用替换模式替换应用模式 |
r |
从另一个文件中读文本 |
w |
将文本写入到一个文件 |
y |
变换字符 |
q |
第一个模式匹配完成后退出 |
l |
显示与八进制ASCII代码等价的控制字符 |
{} |
在定位行执行的命令组 |
n |
读取下一个输入行,用下一个命令处理新的行 |
h |
将模式缓冲区文本拷贝到保持缓冲区 |
H |
将模式缓冲区文本追加到保持缓冲区 |
x |
互换模式缓冲区和保持缓冲区内容 |
g |
将保持缓冲区内容拷贝到模式缓冲区 |
G |
将保持缓冲区内容追加到模式缓冲区 |
sed -n '/hello/=' a.txt 打印行号
sed -n '/hello/p' a.txt 打印内容
sed -n '$p' a.txt 打印最后一行
sed -n '/zbq/,$p' a.txt 从匹配的zbq行到最后一行
#!/bin/sed -f
/zbq:/i\
we insert a new line.
在匹配行上面插入 we insert a new line
sed -n 's/hello/world/w b.txt' a.txt
把 匹配hello行替换world行 并输出到 b.txt中
sed '/hello/r b.txt' a.txt
把匹配的hello用文本b.txt替换
ifconfig | grep 'inet addr' | sed 's/^.*inet addr://g' | sed 's/Mask.*$//g' | sed 's/Bcast.*//g'
只显示ip
awt
变量
描述
$n |
当前记录的第n个字段,字段间由FS分隔。 |
$0 |
完整的输入记录。 |
ARGC |
命令行参数的数目。 |
ARGIND |
命令行中当前文件的位置(从0开始算)。 |
ARGV |
包含命令行参数的数组。 |
CONVFMT |
数字转换格式(默认值为%.6g) |
ENVIRON |
环境变量关联数组。 |
ERRNO |
最后一个系统错误的描述。 |
FIELDWIDTHS |
字段宽度列表(用空格键分隔)。 |
FILENAME |
当前文件名。 |
FNR |
同NR,但相对于当前文件。 |
FS |
字段分隔符(默认是任何空格)。 |
IGNORECASE |
如果为真,则进行忽略大小写的匹配。 |
NF |
当前记录中的字段数。 |
NR |
当前记录数。 |
OFMT |
数字的输出格式(默认值是%.6g)。 |
OFS |
输出字段分隔符(默认值是一个空格)。 |
ORS |
输出记录分隔符(默认值是一个换行符)。 |
RLENGTH |
由match函数所匹配的字符串的长度。 |
RS |
记录分隔符(默认是一个换行符)。 |
RSTART |
由match函数所匹配的字符串的第一个位置。 |
SUBSEP |
数组下标分隔符(默认值是\034)。 |
awk [-F 域分割符] 'awk程序段' 输入文件
awk -f awk脚本文件 输入文件
./awk脚本文件 输入文件
awk '{print $1,$2}' c.txt
打印第一和第二域 $0是全域
awk -F"\t" '{print $1}' c.txt
打印以tab键分割的域
awk 'BEGIN {FS=","} {print $1}\' c.txt
打印以,域
awk 'BEGIN {FS=":"} $1~/bin/' /etc/passwd
打印以【:】为域 第一域匹配bin字符
awk 'BEGIN {FS=":"} {if ($3~10||$4~7) print $0}' /etc/passwd
打印以【:】为域 第三域匹配字符串10 第四域匹配字符串7
awk '/^$/{print x+=1}' c.txt
打印空白行 行数
#!/usr/bin/awk -f
BEGIN {FS=","}
{
total=$2+$3+$4
avg=total/3
print $1,avg
}
把第2,3,4域相加取平均值
awk 'BEGIN {FS=","} {print NF,NR,$0} END {print FILENAME}' c.txt
以,为分割符 打印,行号,全部 最后打印文件名
分享到:
相关推荐
### Linux grep sed awk命令详解 #### 一、grep命令详解 **grep** 是一个用于查找文件里符合条件的字符串的强大工具。它可以对文件进行快速搜索,找出含有特定模式的行。 - **基本语法**:`grep [选项] 模式 文件...
sed awk grep sed awk grepsed awk grep sed awk grep sed awk grep sed awk grep sed awk grep sed awk grep sed awk grep
在IT领域,文本处理是日常工作中不可或缺的一部分,而grep、sed、awk和perl这四个工具在处理文本时都广泛地使用了正则表达式。它们各自有着不同的特性和适用场景,理解它们之间的差异有助于我们更高效地进行文本操作...
Linux系统中,文本处理是一项常见且重要的任务,grep、sed和awk是三个常用的文本处理工具,因其功能强大,被誉为Linux文本处理的"三剑客"。下面将详细总结这三个工具的使用方法和相关知识点。 ### grep grep是用于...
在Linux或Unix环境中,`grep`、`sed`和`awk`是三个非常强大的文本处理工具。通过掌握这些工具的基本用法及高级功能,用户可以高效地处理各种文本文件。下面将详细介绍如何使用这些命令进行具体的文本操作。 #### 1....
然而,为了实现类似的功能,例如文本处理和搜索,有一些工具可以帮助我们在Windows环境下模拟Unix/Linux中的`grep`、`sed`和`awk`。这三个工具在文本处理领域极其重要,它们分别用于查找、替换和格式化文本数据。 `...
### Linux系统中的查询三剑客:grep、awk、sed 使用详解 #### grep 命令详解 `grep` 是一个非常强大的文本搜索工具,它可以在文本中查找指定的字符串,并且能够逐行处理文本。这使得 `grep` 成为了文本处理和数据...
sed awk grep命令使用 sed awk grep命令使用 sed awk grep命令使用
包括: 1. sed与awk+第三版(中文高清晰),内容非常全面详细,看了觉得很不错,学习sed和awk的必备书籍。 2. Effective awk Programming, 4th Edition 3. Sed与awk第二版(高清版).pdf
此外,资料中可能还会涵盖高级话题,如脚本编写、自定义函数、awk的BEGIN和END规则,以及如何结合其他Unix/Linux命令行工具协同工作。 通过深入学习这个资料全集,你将能够掌握sed和awk的核心技能,无论是日常文本...
### Shell正则表达式之grep、sed、awk实操笔记 #### 一、概述 本文主要探讨了在Shell脚本编程中如何运用`grep`、`sed`与`awk`结合正则表达式来实现一些具体的需求。这些工具在文本处理方面极其强大,通过灵活运用...
在Linux系统中,Sed和awk通常用于: 1. 日志文件分析:快速查找、修改日志文件中的信息。 2. 数据转换:对数据文件进行转换,便于导入到数据库或电子表格中。 3. 自动化脚本:在shell脚本中嵌入sed和awk命令,实现...
grep和正则表达式 什么是正则表达式: 正则表达式用于描述字符排列和匹配模式的一种语法规则。它主要用于字符串的模式分隔、匹配、查找及替换操作 元字符 * 重复匹配前一个字符0到多次 . 匹配除了换行符外...
其中,`sed` 和 `awk` 是两种非常强大的文本处理工具,广泛应用于Linux/Unix环境中。本指南将详细介绍这两个工具的基础用法及高级特性。 #### 二、Sed 命令语法与基本命令 ##### 1. Sed 命令语法 `sed`(Stream ...
本书介绍了一组名字奇特的UNIX实用工具:sed和awk。这组实用工具有很多共同的特征,譬如正则表达式在模式...一般情况下,从grep到sed和awk的学习过程是很自然的,所以本书涵盖了上述3个程序,而重点集中在sed和awk。
包含命令:awk、cat、cut、diff、echo、gawk、grep、head、sed、sort、tac、tail、tr、uniq、wc 可以在windows上cmd窗口显示彩色文字,用法:echo.exe -e "\033[32;1mGREEN\033[0m
在Linux操作系统中,grep、sed和gawk是三个强大的文本处理工具,它们在日常的系统管理和脚本编写中起着至关重要的作用。了解并熟练掌握这三个工具,能极大地提高工作效率和解决问题的能力。 **grep(Global Regular...
### Linux中的文本处理工具:awk、grep、sed #### 一、awk命令详解 **1.1 awk简介** - **定义**: awk 是一种强大的文本处理工具,也是一种编程语言,主要用于处理数据和生成报告。 - **功能**: awk 通过逐行扫描...