前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux笔记12

Linux笔记12

原创
作者头像
用户7271996
发布2023-03-09 16:29:48
4060
发布2023-03-09 16:29:48
举报
文章被收录于专栏:c

sed [-nef] [动作]

-n : 使用安静(silent)模式,在一般sed的用法中,所有来自stdin的数据一般都会被列出到屏幕上。但如果加上-n参数后,则只有经过sed特殊处理的那一行(或操作)才会被列出来;

-e : 直接在命令行模式上进行sed的操作编辑;

-f : 直接将sed的操作写在一个文件内,-f filename则可以执行filename内的sed操作;

-r : sed的操作使用的是扩展型正则表达式的语法。(默认是基础正则表达式语法)

-i : 直接修改读取的文件内容,而不是由屏幕输出。

操作说明(如sed ‘2,5d’,操作得用’ '包裹起来使用):[n1[,n2]]function

n1,n2 : 不见得会存在,一般代表【选择进行操作的行数】,举例来说,如果我的操作是需要在10到20行之间进行的,则【10,20[操作行为]】;

function有下面这些东西:

a : 新增,a的后面可以接字符,而这些字符会在新的一行出现(目前的下一行);

c : 替换,c的后面可以接字符,这些字符可以替换n1,n2之间的行;

d : 删除,因为是删除,所以d后面通常不接任何东西;

i : 插入,i的后面可以接字符,而这些字符会在新的一行出现(目前的上一行);

p : 打印,亦即将某个选择的数据打印出来,通常p会与参数sed -n一起运行;

s : 替换,可以直接进行替换的工作,通常这个s的操作可以搭配正则表达式,例如1,20s/old/new/g就是。

代码语言:javascript
复制
sed -n ' /is/p' 1.txt 在1.txt中查找is
sed -n '/t[ae]st/p' 1.txt == grep 't[ae]st' 1.txt
sed -n '/^[a-z]/'p 1.txt  ===grep '^[a-z]' 1.txt  以小写字母开头
sed -n '/!$/'p 1.txt ==grep '!$' 1.txt 以!结尾
sed -n '/g..d/'p 1.txt ==grep 'g..d' 1.txt
sed -n '/\.$'p 1.txt     以.结尾
sed -n '/go\{2\}g/'p 1.txt
代码语言:javascript
复制
[root@192 ~]# cat -n 1.txt
     1    统支持的所有变量
     2    I love you
     3    AAAABB
     4    linux 
[root@192 ~]# cat -n 1.txt | sed '2a this line is append'
     1    统支持的所有变量
     2    I love you
this line is append
     3    AAAABB
     4    linux 
[root@192 ~]# cat -n 1.txt | sed '2i this line is append'
     1    统支持的所有变量
this line is append
     2    I love you
     3    AAAABB
     4    linux
[root@192 ~]# cat -n 1.txt |sed '2,3c this line is 2,3 line '
     1    统支持的所有变量
this line is 2,3 line 
     4    linux
[root@192 ~]# cat -n 1.txt |sed '2,4d'
     1    统支持的所有变量
[root@192 ~]# cat -n 1.txt |sed -n '2,4p'
     2    I love you
     3    AAAABB
     4    linux 
代码语言:javascript
复制
[root@192 ~]# sed -n '2p' 1.txt
I love you
[root@192 ~]# sed -n '$p' 1.txt
linux 
[root@192 ~]# cat -n 1.txt | sed 's/i/I/'   只将第一个i替换为I   s/i/I/g将所有i替换成I

1 统支持的所有变量

2 I love you

3 AAAABB

4 lInux

sed -n '/linux/=' 1.txt 打印1.txt中有Linux的行的行号

对同一文件进行多次修改的三种方法

代码语言:javascript
复制
1.-e
cat 1.txt |sed -e '' -e ''

2.cat 1.txt|sed ';'

3.cat file | sed '
s/old1/new1/
s/old2/new2/'

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档