sed 以及 awk用法

  

sed 格式
sed[options] "script" FILE....

选项:
-n:静默模式,不输出模式空间内的内容;默认打印空间模式的内容
-r:扩展的正则表达式
-f 文件:指定sed脚本文件
-e ‘script‘ -e ‘script‘ :指定多个编辑指令
-i : 直接编辑原文件

编辑命令:
d:删除
p: 打印
i \text:在被指定到的行前面插入文本
a \text:在被指定的行的下面插入文本
\n:换行
r /path/file.txt:在指定位置把另外一个文件的内容插入
w /path/file.txt:将符合条件的所有行保存至指定文件中
=:显示符号条件的行的行号
s///:查找条件可以使用模式,但是要替换的内容不行

地址定界:自定义的起始行到结束行
startline,endline
1,3
/pat1/,/pat2/
/pattern/

用法:sed [options] ‘addr1[,addr2]编辑命令‘ FILE...
sed [options] "addr1[,addr2]编辑命令" FILE...

用法

1. 删除 /etc/puppet/puppet.conf 1到13行的数据
[[email protected] ~]# sed ‘1,13d‘ /etc/puppet/puppet.conf

2. 删除以空格或者tab的集合开头的行[[email protected] ~]# sed ‘/^[[:space:]]/d‘ /etc/puppet/puppet.conf 

3.删除空行[[email protected] ~]# sed ‘/^[[:space:]]*$/d‘ /etc/puppet/puppet.conf

4.删除fstab中以/ 开头的行。[[email protected] ~]# sed ‘/^\//d‘ /etc/fstab

5.删除第2行到第一次出现 / 的行,结束是在/ 行后[[email protected] ~]# sed ‘2,/^\//d‘ /etc/fstab

6.删除以 # 开始到第一次出现 / 的行,结束是在/ 行后
[[email protected] ~]# sed ‘/^#/,/^\//d‘ /etc/fstab
7.显示打印以 # 开始到第一次出现 / 的行,结束是在/ 行后
[[email protected] ~]# sed -n ‘/^#/,/^\//p‘ /etc/fstab
8.在空行前添加 11111111111111 [[email protected] ~]# sed ‘/^$/i \111111‘ /etc/fstab[[email protected] ~]# sed ‘/^[[:space:]]*$/i \111111‘ /etc/fstab
9.在空行后添加 11111111111111 [[email protected] ~]# sed ‘/^$/a \111111‘ /etc/fstab[[email protected] ~]# sed ‘/^[[:space:]]*$/a \111111‘ /etc/fstab

10.在大写字母后添加2行[[email protected] ~]# sed ‘/^[[:upper:]]/a \aaaaaaaaaaa\nbbbbbbbbb‘ /etc/issue

11. 在一个大写字母行后,把另一个文件内容追加进来。[[email protected] ~]# sed ‘/sda2/r /etc/issue‘ /etc/fstab

12. 将fstab 中包含 / 的保存在/tmp/file.txt中sed ‘/\//w /tmp/file.txt‘ /etc/fstab

13.显示匹配的行号[[email protected] ~]# sed ‘/\//=‘ /etc/fstab
时间: 2024-09-30 15:16:31

sed 以及 awk用法的相关文章

sed和awk用法

正则表达式的语法: .一点代表一个字符 . 代表任意的字符. 例1:样式 .T. ,代表3 个字符,中间是T,左右两边是任意的一个字符. 例2:... 代表字符长度是3 的字符串.若想比对 . 这个字符本身,需加上转义字符(\),写成\.. 例如:样式data\....代表data.后接3 个字符,如data.txt.data.cfg.data.123 等,都符合这个样 式,但data1234 就不符合了,因为4 个点最左边的那个点,已经用\转义其特殊意义,还原为. 这个字符本身,因此,\...

grep,sed,awk用法整理

grep -c 打印出符合要求的行数 -i 忽略大小写              ignore -n 连同符号一起输出          num -v 打印出不符合要求的行 -A2 本行及下面两行 -B2 本行及上面两行 -C2 本行及上下两行 grep ^root passwd    #过滤以root开头的行 grep root$ passwd    #过滤以root结尾的行 grep -i ^root passwd    #不区分大小写,过滤以root结尾的行 grep -E "^root|

sed与awk用法

sed语法: sed -e    执行多个sed指令 -f    运行脚本 -i    编辑文件内容 sed -n '3p' /etc/passwd ##显示第三行  sed -n '1,3p' 显示前三行. sed -n '1,3!p' ##查看除前三行以外 sed -n '3,+3p' passwd  ##加起来一共显示6行. sed '$a###' passwd >> a.txt ##追加   sed '$c###' passwd ###替换 awk: awk '{print $0}'

sed和awk之sed篇(含sed高级用法)

(原创文章,谢绝转载~) sed(stream editor)和 awk 是linux环境下处理文本.数据的强大"利器",sed对数据列的处理稍逊,awk则更似一门语言,control flow的语法基本和c语言一样,能够处理复杂的逻辑,二者经常配合正则表达式使用.本文简述sed用法. sed对输入流(文本数据)逐行处理,其基本格式为: sed (OPTIONS...) [SCRIPT] [INPUTFILE...]#examplessed '10d' test.txtsed -i '

9-13 文本处理工具sed及awk的用法

文本编辑三剑客:grep, sed, awk    grep: 文本搜索工具:egrep, fgrep    sed: stream editor, 流编辑器:    awk(gawk):文本格式化工具,报告生成器 sed命令: 基本正则表达式的元字符:     字符匹配:            .: 匹配任意单个字符:            []:匹配指定范围内的任意单个字符:            [^]:匹配指定范围内的任意单个字符: [:lower:]:所有小写字母 [:upper:]:

sed及grep用法详解

在linux系统有被称为文本处理三剑客grep,sed,awk. 今天与大家分享的就是gerp和sed处理工具,至于awk,我将会在晚些的时间与大家分享,在分享grep和sed之前我先要和大家说说正则表达,正则表达是什么呢,正则表达式就像是三剑客手里的剑,没有剑哪还能称的上什么剑客,所以我们要先了解以下正则表达式的简单用法. 什么是正则表达式: "正则表达式是描述一组字符窜特征的模式,用来匹配特定的字符串."--Ken Thompson 基本正则表达式的元字符有以下这些: . :匹配任

awk用法(一)

awk用法(一) awk跟以前的sed命令,grep命令比较,它的优势在于它能够实现更多的功能. 比如awk可以实现分段,sed,grep是没法实现的 可以根据一个分隔符,将其分为一小段一小段,通过段来匹配. 知识点一: awk -F ':' '{print $3,$4}' 1.txt 显示指定段的匹配== awk -F: '{print $3,$4}' 1.txt -F ':'指定冒号分隔符,$3指定第三段 $3,$4中间的逗号,实际显示的是空格分割.[比较下面截图可看出] 知识点二: awk

Shell脚本编程与sed,awk工具的使用--9月15日课程作业

一.shell程序的运行原理 1.脚本 脚本或程序源文件是一种文本文件,将文本文件转换成机器指令有两种转换方式: 编译执行:预处理-->编译-->汇编-->链接:事先完成,结果:二进制程序文件 例如:C, C++ 解释执行:由解释器全程参与运行过程,每次读取一行,运行一行: 例如:  Python:程序控制结构,调用编程库完成程序编写: 库文件:功能模块,在编程中可调用: Bash:调用机器上命令程序文件进行程序编写: 外部命令:各应用程序提供: 2.原理 当shell运行一个程序时,会

日志分析查看——grep,sed,sort,awk运用

概述 我们日常应用中都离不开日志.可以说日志是我们在排查问题的一个重要依据.但是日志并不是写了就好了,当你想查看日志的时候,你会发现线上日志堆积的长度已经超越了你一行行浏览的耐性的极限了.于是,很有必要通过一些手段来高效地辅助你来快速的从日志中找到你要找的问题.本文通过一个从项目中衍生出来的例子从查找日志,筛选日志和统计日志3个方面层层递进来简述日志文件查看中一些有用的手段.(注:在linux环境下) 目录 0.查找关键日志grep 1.查找关键日志grep 2.精简日志内容 sed 3.对记录