美文网首页
(十)、sed的工作模式

(十)、sed的工作模式

作者: 雪燃归来 | 来源:发表于2021-01-19 00:18 被阅读0次

一、基础介绍

sed(Stream Editor),流编辑器对标准输出或文件逐行进行处理。

二、语法格式

第一种形式:

stdout | sed [option] "pattern command"

第二种形式

sed [option] "pattern command" file

三 、sed的处理过程

sed的处理过程

四、sed的选项

选项 含义
-n 只打印模式匹配行
-e 直接在命令行进行sed编辑,默认选项
-f 编辑动作保存在文件中,指定文件执行
-r 支持扩展正则表达式
-i 直接修改文件内容

选项练习

测试文案

sed.txt

I love python
I love PYTHON
Hadoop is bigdata frame

1、非静默模式(同时输出匹配行和远行信息)

sed 'p' sed.txt
/*
I love python
I love python
I love PYTHON
I love PYTHON
Hadoop is bigdata frame
Hadoop is bigdata frame
*/

2、-n 静默模式输出(只打印一遍,原行信息不打印,只打印匹配信息)

sed -n 'p' sed.txt
/*
I love python
I love PYTHON
Hadoop is bigdata frame
*/

sed -n '/python/p' sed.txt
/*
I love python
*/

3、-e 同时按照多个条件进行编辑

sed -n -e '/python/p' -e '/PYTHON/p' sed.txt
/*
I love python
I love PYTHON
*/

4、-f 引用外部的sed命令
edit.sed

/python/p
sed -n -f edit.sed sed.txt
/*
I love python
*/

5、-r 支持扩展运算符

sed -n -r '/python|PYTHON/p' sed.txt 
/*
I love python
I love PYTHON
*/

6、-i 修改原文件内容

sed -i 's/love/like/g' sed.txt
cat sed.txt
/*
I like python
I like PYTHON
Hadoop is bigdata frame
*/

五、sed中的详解pattern

pattern用法表

pattern 练习

前置操作(每次操作后都要操作)

cp /etc/passwd ./

1、指定行号

sed -n "17p" passwd
// libstoragemgmt:x:998:995:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin

2、指定起始行号和结束行号

sed -n "10, 12p" passwd
/*
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
*/

3、指定起始行号,然后后面N行

sed -n "10,+5p" passwd
/*
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
*/

4、正则表达式匹配行

sed -n "/^root/p" passwd
/* root:x:0:0:root:/root:/bin/bash */
// 打印未登录的行
sed -n "/\/sbin\/nologin/p" passwd
/* 结果略*/

5、从匹配到pattern1的行,到匹配到pattern2的行

sed -n "/^ftp/,/^mail/p" passwd
/* 略 */

6、指定行号开始,直到匹配到pattern1的行

sed -n "4,/^hdfs/p" passwd
/* 略 */

7、从pattern1匹配的行开始,直到匹配到指定的位置

sed -n "/root/, 10p" passwd
/* 略 */

sed中的编辑命令详解

编辑命令(上)
编辑命令下

相关文章

网友评论

      本文标题:(十)、sed的工作模式

      本文链接:https://www.haomeiwen.com/subject/sfazaktx.html