grepawksed三者的区别,Grew的意思

http://www.itjxue.com  2023-01-23 06:28  来源:未知  点击次数: 

Linux4-文本处理三驾马车:grep, sed, awk

Linux基础课程系列:

grep:一种强大的文本搜索工具,它能使用正则表达式匹配模式搜索文本,并把匹配的行打印出来

格式: grep [options] pattern file ([]内的部分可以省略)

sed:流编辑器,一般用来对文本进行 增删改查 (sed是以 行 为单位来处理的)。

用法: sed [-options] 'script' file(s)

[!] 表示否定,取反(相当于grep -v)

awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其 对数据分析并生成报告 时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。awk有3个不同版本: awk、nawk和gawk,未作特别说明,一般指gawk。gawk 是 AWK 的 GNU 版本。

用法: awk [options] '{script}' file 。

基础结构: ' {script} '

匹配结构: ' /pattern/{script} '

扩展结构: 'BEGIN{script} {script} END{script}'

awk 在读取一行文本时,会用预定义的字段分隔符划分每个数据字段,并分配给一个变量。

$0 代表整个文本行;

$1 代表文本行中的第1个数据字段;

……

$NF 代表文本行中的最后一个数据字段

awk 默认的字段分隔符是任意空白字符(如:空格or 制表符),也可以用-F 参数自定义分隔符

Linux中sed命令同awk命令有什么区别呢,具体该如何使用呢?

sed 多用来编辑修改

awk 多用来打印

sed grep awk 俗称三剑客

使用上sed 和 awk扩展下来,内容可多了,甚至awk可以被当作一种脚本工具,单独出书,sed简单的用法增删改查都是可以直接百度到的,awk的打印也是。

例如 sed中

s 替换

sed 's/zhangsan/lisi/' yourfile 就是将zhangsan替换为lisi ,打印不执行

加上i后才真正执行 sed -i 's/zhangsan/lisi/' yourfile

d 删除

sed '/zhangsan/d' yourfile

sed -i '/zhangsan/d' yourfile

a 追加

sed -i '/zhangsan/alisi' yourfile

i 前插

sed -i '/zhangsan/ilisi' yourfile

p 打印

sed -n '/zhangsan/p' yourfile

因为它本身也会打印一般,所以加 -n 不默认打印

awk

-F 指定分隔符

awk -F ':' '/^root/{print $7}' /etc/passwd

打印以 root开头所在行,以“:”为分隔符,打印第七列

其效果就是打印了root的shell

纯手打,望采纳,谢谢,遇到具体问题仍可继续交流

awk和sed是做什么用的,有什么区别

非常强大的文本操纵工具,sed,awk,grep 这个三个命令 都是操作文本文件的

unix系统有几个非常命令的特点:

1. 对于内核而言,unix文件都是字节序列。io设备也是文件。

2. 至于文件的含义交由应用程序来解释。其中文本文件非常重要,因为unix提供 很多了实用程序(utility),这些程序功能相对独立,但可以通过管道来实现进程间通信(IPC),这样松散的耦合可以完成复杂的操作。那么进程间的通信的数据格式是怎样的呢? 其实对于实用程序而言,这个数据格式就是简单的文本文件。此外,还有IO重定向,也是一个不错的创意。至于文本文件中的内容采用什么格式呢?这个很具体的命令有关,那么操作文本就变得非常重要。grep,sed和awk就是三个操纵文本文件的命令

grep搜索

sed 修改和编辑文本文件中某些行,也可以搜索

awk 是访问文本文件,操纵文本文件中某些数据,进行搜索统计运算

linux 三剑客(awk、sed、grep)

可以根据文件指定分隔符,像处理表格一样处理文本或序列。通常来处理字段,并基于字段进行过滤,或进行模式匹配。

语法

常用的内建变量

NF :记录的字段数

NR :记录的行号

OFS :输出字段分隔符,默认值与输入字段分隔符一致。

ORS :输出记录分隔符(默认值是一个换行符)

$n :当前记录的第n个字段,字段间由FS分隔

$0 :完整的输入记录

ARGV :包含命令行参数的数组

ARGC :命令行参数的数目

基本用法

awk 脚本

关于 awk 脚本,我们需要注意两个关键词 BEGIN 和 END。

BEGIN{ 这里面放的是执行前的语句 }

END {这里面放的是处理完所有的行后要执行的语句 }

{这里面放的是处理每一行时要执行的语句

以上的应用案例基本包括了常用的awk 的常用用法,更复杂的文本处理则可以通过awk 脚本完成。

与awk 相比,sed在处理文本的行具有更好的效率。

基本语法

参数说明

sed 文件处理命令

包括增加、删除、打印、替换行的内容

应用案例

以上的案例表明,sed 的一些操作可以放在行的末尾,或者放在模式匹配的末尾,或者在大括号内以分号分隔,或者通过-e 命令,实现多点编辑。

grep 查找文件里符合条件的字符串。

语法

应用案例

grep 除了可以查找单个文件中匹配的模式,也可以在目录中包含特定字符的文件查找匹配模式的行。

(责任编辑:IT教学网)

更多

推荐HTML/Xhtml文章