linux常用命令全集sed,Linux常用命令 sed 使用简述

Linux/UNIX中的sed命令是Stream Editor文本流编辑的缩写,它能同时处理多个文件多行的内容,比如文搜索,查找和替换,插入或删除。虽然sed命令在Linux/UNIX中最常见的用途是替代或查找。通过使用sed,您甚至可以在不打开文件的情况下编辑文件,这比先在VI编辑器中打开文件然后更改文件要快得多。

sed是一个强大的文本流编辑器。可以做插入、删除、搜索和替换(替换)。

Linux/UNIX中的sed命令支持正则表达式,从而可以执行复杂的模式匹配。

c4ff32d89ba0b3f0e9cfbe59c723aed2.png

语法:

set [option] 'command' input_file

其中option是可选的,常用的option有以下几种:

-n 使用安静(silent)模式(为什么不是-s呢?)。在一般sed的用法中,所有来自stdin的内容一般都会被列出到屏幕上。但如果加上-n参数后,则只有经过sed特殊处理的那一行(或者动作)才会被列出来;

-e 直接在指令列模式上进行 sed 的动作编辑;

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

-r 让sed命令支持扩展的正则表达式(默认是基础正则表达式);

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

常用的命令有以下几种:

a \: append即追加字符串, a \的后面跟上字符串s(多行字符串可以用\n分隔),则会在当前选择的行的后面都加上字符串s;

c \: 取代/替换字符串,c \后面跟上字符串s(多行字符串可以用\n分隔),则会将当前选中的行替换成字符串s;

d: delete即删除,该命令会将当前选中的行删除;

i \: insert即插入字符串,i \后面跟上字符串s(多行字符串可以用\n分隔),则会在当前选中的行的前面都插入字符串s;

p: print即打印,该命令会打印当前选择的行到屏幕上;

s: 替换,通常s命令的用法是这样的:1,2s/old/new/g,将old字符串替换成new字符

使用方法:

比如我们打开LinuxMi.py文件看下

1 import re

2 str_test='abcdefgHABC123456Linux迷'

3

4 #把正则表达式编译成对象,如果经常使用该对象,此种方式可提高一定效率

5 num_regex = re.compile(r'[0-9]')

6 zimu_regex = re.compile(r'[a-zA-z]')

7 hanzi_regex = re.compile(r'[\u4E00-\u9FA5]')

8

9 print('输入字符串:',str_test)

10 #findall获取字符串中所有匹配的字符

11 num_list = num_regex.findall(str_test)

12 print('包含的数字:',num_list)

13 zimu_list = zimu_regex.findall(str_test)

14 print('包含的字母:',zimu_list)

15 hanzi_list = hanzi_regex.findall(str_test)

16 print('包含的汉字:',hanzi_list)

我们看替换文件里面的内容,把 fill 改成 fillAA,用如下命令

1、a命令用法

主要在一行的后面加上 我们需要的东西

比如我们要在第一行增加字符串 linuxmi

[linuxmi@linux:~/Linux迷] $ sed '1 a\linuxmi' LinuxMi.py

fe1d224bdd05fd66a50c14d181aec401.png

1 a是第一行的意思, 比如是2到3行 可以用 2,3  $是末尾的是必然要 第二行到末尾一行可以用这个表示 2,$ 比如我们要在第二行到末尾一行增加 linuxmi.com,如下命令

[linuxmi@linux:~/Linux迷] $ sed '2,$ a\linuxmi.com' LinuxMi.py

效果如下

00b4287483b406b76b49249219867f17.png

2、i命令用法

主要在一行的前面加上我们需要的东西,和a命令的效果一样。

3、c命令用法

主要是替换一行,比如

[linuxmi@linux:~/Linux迷] $ sed '$ c\www.linuxmi.com' LinuxMi.py

449632f4abf899331b6ac9df26d1cbea.png

4、d命令用法

删除第5行到末尾

[linuxmi@linux:~/Linux迷] $ sed '5,$d' LinuxMi.py

d4079163df37a6b2a7ff49d41a31cdfa.png

5、p命令用法

p是屏幕打印和d的用法一样

6、s命令用法

主要是替换内容,比如在文本里面把 regex 全部替换成regexp

[linuxmi@linux:~/Linux迷] $ sed 's/regex/regexp/g' LinuxMi.py

g是全部内容意思

be99cd882b1990244c572fcc833d9957.png

7、删除配置文件中#开头的注释行

[linuxmi@linux:~/Linux迷] $ sed '/^#/d' LinuxMi.py

1da62f513e87e82c865165699242bfea.png

8、将所有数字替换成*

[linuxmi@linux:~/Linux迷] $ sed 's#[0-9]#*#g' LinuxMi.py

11bebdeeb1438034102951757b427534.png

9、查询指定分行

[linuxmi@linux:~/Linux迷] $ sed -n '2p;5p' LinuxMi.py

d1975ca24bf6384941049b2ad0008ba6.png

sed可以用来自动编辑一个或多个文件,简化对文件的反复操作,编写转换程序等。暂时先这样吧。

0b1331709591d260c1c78e86d0c51c18.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值