三剑客之sed,awk,grep,egrep

Sed是文本处理工具,依赖于正则表达式,可以读取文本内容,根据指定条件对数据进行添加、删除、替换等操作,广泛应用于shell脚本,以完成自动化处理任务。
Sed在处理数据时默认不直接修改源文件,而是把当前处理的行存储在临时缓冲区中,所有指令都在缓冲区中操作,处理完成后,把缓冲区内容默认输出到屏幕,接着处理下一行内容,这样不断重复,直到文件末尾,文件本身内容并没有做任何改变。

一、Sed三大功能:
(1)读取:sed 从输入流(文件、管道、标准输入)中读取一行内容并存储到临时的缓冲区中;
(2)执行:默认情况下,所有的 sed 命令都在模式空间中顺序地执行,除非指定了行的地址,否则 sed 命令将会在所有的行上依次执行;
(3)显示:发送修改后的内容到输出流,再发送数据后,模式空间将会被清空。
***注意:默认情况下,所有的 sed 命令都是在模式空间内执行的,因此输入的文件并不会发生任何变化,除非是用重定向存储输出。
二、Sed命令两种格式:
其中,“参数”是指操作的目标文件,当存在多个操作对象时用,文件之间用逗号“,”分隔;而 scriptfile 表示脚本文件,需要用“-f”选项指定,当脚本文件出现在目标文件之前时,表示通过指定的脚本文件来处理输入的目标文件。

sed [选项] ‘操作’ 参数
sed [选项] -f scriptfile 参数

(1)常见的 sed命令选项:

-e :表示用指定命令或者脚本来处理输入的文本文件;
-f :表示用指定的脚本文件来处理输入的文本文件;
-h :显示帮助;
-n :表示仅显示处理后的结果;
-i :直接编辑文本文件;

(2)常见的操作选项:

a:增加,在当前行下面增加一行指定内容;
c:替换,将选定行替换为指定内容;
d:删除,删除选定的行;
i :插入,在选定行上面插入一行指定内容;
p:打印,如果同时指定行,表示打印指定行;如果不指定行,则表示打印所有内容,通常与 -n选项一起使用;
s :替换,替换指定字符;
y :字符转换;

一、awk简介:
在 Linux/UNIX 系统中,awk 是一个功能强大的编辑工具,逐行读取输入文本,并根据指定的匹配模式进行查找,对符合条件的内容进行格式化输出或者过滤处理,可以在无交互的情况下实现相当复杂的文本操作,被广泛应用于 Shell 脚本,完成各种自动化配置任务。
二、常见用法:
单引号加上大括号“{}”用于设置对数据进行的处理动作。awk 可以直接处理目标文件,也可以通过“-f”读取脚本对目标文件进行处理。
awk 将文本文件中的一行视为一个记录,而将一行中的某一部分(列)作为记录中的一个字(域)。为了操作这些不同的字段,awk 借用 shell 中类似于位置变量的方法, 用$1、$2、$3…顺序地表示行(记录)中的不同字段。另外 awk 用$0 表示整个行(记录)。不同的字段之间是通过指定的字符分隔。awk 默认的分隔符是空格。awk 允许在命令行中用“-F 分隔符”的形式来指定分隔符。

awk 【选项】‘模式或条件 {编辑指令}’ 文件1 文件2
awk -f 脚本文件 文件1 文件2
1)特殊的内建变量(可直接用)

FS:指定每行文本的字段分隔符,默认为空格或制表位(tab键);
NF:当前处理的行的字段个数;
NR:当前处理的行的行号(序数);
$0:当前处理的行的整行内容;
$n:当前处理行的第 n 个字段(第 n 列);
FILENAME:被处理的文件名;
RS:数据记录分隔,默认为\n,即每行为一条记录;
(2)关系运算符号:只有当条件为真,才执行指定的动作。
大于(>);小于(<);大于等于(>=);小于等于(<=);
等于(==)、不等于(!=);
&&(与)、||(或)、!(非);
加(+)、减(-)、乘(*)、除(/)、取余(%)、乘方(^);

一、grep命令

-n: 表示显示行号
-i : 表示不区分大小写刷选
-v : 表示方向查找

(1)查找特定的字符:
grep -n ‘the‘ abc.txt //查找有the的行,并显示出行号
1
grep -in ‘the’ abc.txt //不区分大小写查找有the的行,并显示行号
1
如果是想查找不包含the的行,-vn选项即可:
grep -vn ‘the’ abc.txt //查找不包括the的行,并显示出行号
1
(2)中括号 [ ] 查找集合字符:
例如:当我们需要查找两个字符 “aboyz” 和 “abiyz” 这两个字符时,其中ab和yz都是相同的,可以利用 [ ]来匹配字符,[ ]中不论有几个字符,都仅代表一个字符,
元字符

原文地址:https://blog.51cto.com/14449563/2441540

时间: 2024-10-16 07:16:48

三剑客之sed,awk,grep,egrep的相关文章

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

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

linux下的文本处理命令sed&amp;awk&amp;grep

Sedsed 是个精简的.非交互式的编辑器.他能执行和编辑vi和emacs相同的编辑任务.sed编辑器不提供交互使用方式:只能在命令行输入编辑命令.指定文件名,然后在屏幕上察看输出.sed编辑器没有破坏性.他不会修改文件,除非用shell重定向来保存输出结果.缺省情况下,所以的输出都被打印到屏幕上.sed 编辑器在shell脚本中非常有用,因为在shell脚本中使用像vi或emacs这类交互式编辑器,需求脚本用户精通该编辑器,而且还会导致用户对打开 的 文件做出不必的修改.如果需要执行多项编辑任

sed awk grep三剑客常用

sed的常用用法: awk的常用用法: grep的常用用法: 除了列出符合行之外,并且列出后10行. grep -A 10 Exception kzfinance-front.log 除了列出符合行之外,并且列出前10行. grep -B 10 Exception kzfinance-front.log 除了列出符合行之外,并且列出前后10行. grep -C 10 Exception kzfinance-front.log 详情参考: http://blog.csdn.net/xiaokang

Linux 常用命令sed/awk/grep及正则表达式

linux命令sed和awk sed 主要功能 sed,stream editor.是一个"非交互式"字符流编辑器.输入流通过程序并输出到标准输出端. sed主要用来自动编辑一个或者多个文件(替换,插入,删除,追加,更改) 常见应用 抽区域 匹配正则表达式 比较域 增加,附加,替换 执行过程 sed一次处理一行或多行内容.处理时,把当前处理的行存储在临时缓冲区中,称为"模式空间"(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区

inux基础命令 sed awk grep 及部分快捷键

基本命令 sed      stream deitor(编辑器)   流编辑器,实现对文件的增加删除及该替换查 1.使用sed命令 进行查看 [root@VM_86_3_centos 000.txt]# seq 80 >000.txt(cat 000.txt 出现1-100数列) [root@VM_86_3_centos 000.txt]# sed -n '55,65'p 000.txt(此处可不加引号,但其他情况下不加引号可能会出错  参数 n  取消默认输出  p 打印 )555657585

【转帖】vim/sed/awk/grep等文件批处理总结

https://www.cnblogs.com/cangqiongbingchen/p/9760544.html Vim相关操作 1.基础 * 和 # 对对当前光标所在的单词进行搜索 %匹配括号移动,包括 (, {, [ K 查看man手册 ga 查看ascii值 g CTRL-G 统计字数,使用Visual模式选取统计部分 q: 打开历史记录窗口 :marks 打开编辑标记窗口, `0 准确回到上一次退出vim的位置 gf 打开光标下的指定文件, CTRL-W f 在新窗口中打开 格式转换: 

三剑客(sed awk head)

① sed(替换)命令格式 sed [options] 'command' file(s)sed [options] -f scriptfile file(s)n 读取下一个输入行,用下一个命令处理新的行而不是用第一个命令.g 表示行内全面替换. p 表示打印行. w 表示把行写入一个文件替换文本中的字符串: sed 's/book/books/' file-n选项和p命令一起使用表示只打印那些发生替换的行: sed -n 's/test/TEST/p' file 直接编辑文件选项-i,会匹配f

20150915 Linux 数组 sed awk

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

三剑客基础详解(grep、sed、awk)

三剑客基础详解 三剑客之grep详解 通配符与正则表达式这两口子可以说贯穿三剑客始终,甚至时贯穿linux始终,这样说,我觉得并不夸张.因此在写三剑客之前,先捋一捋这些这些知识点就很有必要了. 相对而言正则用于三剑客多一些,通配符用于Linux命令行多一些. 1.通配符 通配符 描述 * 任意多个字符 ? 任意单个字符 . 当前目录 .. 上级目录 : 命令分隔符 ~ 当前用户家目录 $ 引用变量 ! 逻辑运算非 && 前一个命令执行成功,则执行后面的命令 || 当前命令执行失败,则执行后

Linux文本三剑客超详细教程---grep、sed、awk

awk.grep.sed是linux操作文本的三大利器,合称文本三剑客,也是必须掌握的linux命令之一.三者的功能都是处理文本,但侧重点各不相同,其中属awk功能最强大,但也最复杂.grep更适合单纯的查找或匹配文本,sed更适合编辑匹配到的文本,awk更适合格式化文本,对文本进行较复杂格式处理. 1.grep 1.1 什么是grep和egrep Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来(匹配到的标红).grep全称是Global