更换原装笔记本电池笔记本售后维修电话

笔记本电脑授权维修点查询 - 笔记本服务网点地址电话-赐研笔记本维修网

赐研笔记本维修网提供专业权威的笔记本电脑维修网点查询,笔记本电脑维修点地址查询,包括惠普(hp),戴尔(dell),联想(lenovo),华硕(asus),宏碁(acer)等所在城市的笔记电脑维修点地址电话大全,和最新的电脑笔记本维修故障最新信息.

笔记本电脑文章717 笔记本维修访问6516

基于Linux的sed命令

sed命令用于处理文本,文本按行处理。sed处理文本时,文本内容将放在模式空间中。处理后,将输出模式空间中的文本内容。该文件不会更改文件本身的内容,只会更改模式空间的临时内容。

用法

view sourceprint?1.sed 'AddressCommand' file ...

Address:可以理解为定位数据,通过一系列的操作,筛选出需要的数据

Command:对选出的数据(行)进行一些什么样的操作

下面分开来说

基于Linux的sed命令

例:以/etc/fstab文件为例

view sourceprint?01.#

02.# /etc/fstab

03.# Created by anaconda on Mon Aug 11 16:27:41 2014

04.#

05.# Accessible filesystems, by reference, are maintained under '/dev/disk'

06.# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info

07.#

08.UUID=e76a7b8d-20c2-4f94-bdd1-f4054a34c206 / ext4 defaults,barrier=0 1 1

09.tmpfs /dev/shm tmpfs defaults 0 0

10.devpts /dev/pts devpts gid=5,mode=620 0 0

11.sysfs /sys sysfs defaults 0 0

12.proc /proc proc defaults 0 0

删除前10行

view sourceprint?1.[root@iZ28g26851kZ ~]# sed '1,10d' /etc/fstab

2.devpts /dev/pts devpts gid=5,mode=620 0 0

3.sysfs /sys sysfs defaults 0 0

4.proc /proc proc defaults 0 0

5.[root@iZ28g26851kZ ~]#

删除#号开头的行

view sourceprint?1.[root@iZ28g26851kZ ~]# sed '/^#/d' /etc/fstab

2.

3.UUID=e76a7b8d-20c2-4f94-bdd1-f4054a34c206 / ext4 defaults,barrier=0 1 1

4.tmpfs /dev/shm tmpfs defaults 0 0

5.devpts /dev/pts devpts gid=5,mode=620 0 0

6.sysfs /sys sysfs defaults 0 0

7.proc /proc proc defaults 0 0

8.[root@iZ28g26851kZ ~]#

例:显示以#号开头的行

view sourceprint?01.[root@iZ28g26851kZ ~]# sed '/^#/p' /etc/fstab

02.

03.#

04.#

05.# /etc/fstab

06.# /etc/fstab

07.# Created by anaconda on Mon Aug 11 16:27:41 2014

08.# Created by anaconda on Mon Aug 11 16:27:41 2014

09.#

10.#

11.# Accessible filesystems, by reference, are maintained under '/dev/disk'

12.# Accessible filesystems, by reference, are maintained under '/dev/disk'

13.# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info

14.# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info

15.#

16.#

17.UUID=e76a7b8d-20c2-4f94-bdd1-f4054a34c206 / ext4 defaults,barrier=0 1 1

18.tmpfs /dev/shm tmpfs defaults 0 0

19.devpts /dev/pts devpts gid=5,mode=620 0 0

20.sysfs /sys sysfs defaults 0 0

21.proc /proc proc defaults 0 0

22.[root@iZ28g26851kZ ~]#

居然显示了2遍,不但如此,没有被匹配到的行也显示出来了,

为什么呢?

如前所述,sed处理文本首先被读取到模式空间中。显示处理后,将执行先前的删除。Sed删除模式空间中与匹配结果相匹配的行,然后显示模式空间中的其余行。没问题,但是现在,sed显示匹配结果,但同时也在模式空间中显示内容,所以存在这种尴尬的情况~~

怎么解决呢?

-n

使用-n命令可以开启静默模式,也就是不会再将模式空间中的内容显示出来,而是只显示匹配到的结果

view sourceprint?01.[root@iZ28g26851kZ ~]# sed -n '/^#/p' /etc/fstab

02.#

03.# /etc/fstab

04.# Created by anaconda on Mon Aug 11 16:27:41 2014

05.#

06.# Accessible filesystems, by reference, are maintained under '/dev/disk'

07.# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info

08.#

09.[root@iZ28g26851kZ ~]#

例:在所有的#号所在行之下再添加一行 “test”

view sourceprint?01.[root@iZ28g26851kZ ~]# sed '/^#/a est' /etc/fstab

02.

03.#

04.test

05.# /etc/fstab

06.test

07.# Created by anaconda on Mon Aug 11 16:27:41 2014

08.test

09.#

10.test

11.# Accessible filesystems, by reference, are maintained under '/dev/disk'

12.test

13.# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info

14.test

15.#

16.test

17.UUID=e76a7b8d-20c2-4f94-bdd1-f4054a34c206 / ext4 defaults,barrier=0 1 1

18.tmpfs /dev/shm tmpfs defaults 0 0

19.devpts /dev/pts devpts gid=5,mode=620 0 0

20.sysfs /sys sysfs defaults 0 0

21.proc /proc proc defaults 0 0

22.[root@iZ28g26851kZ ~]#

例:将#号开头的行保存到test10.txt文件中

view sourceprint?01.[root@iZ28g26851kZ ~]# sed '/^#/w test10.txt' /etc/fstab

02.

03.#

04.# /etc/fstab

05.# Created by anaconda on Mon Aug 11 16:27:41 2014

06.#

07.# Accessible filesystems, by reference, are maintained under '/dev/disk'

08.# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info

09.#

10.UUID=e76a7b8d-20c2-4f94-bdd1-f4054a34c206 / ext4 defaults,barrier=0 1 1

11.tmpfs /dev/shm tmpfs defaults 0 0

12.devpts /dev/pts devpts gid=5,mode=620 0 0

13.sysfs /sys sysfs defaults 0 0

14.proc /proc proc defaults 0 0

15.[root@iZ28g26851kZ ~]# ls

16.exittest.sh libiconv-1.14 mhash-0.9.4.tar.gz mysql-5.1.51.tar.gz nginx-1.8.0.tar.gz test10.txt

17.filetest.sh libiconv-1.14.tar.gz mysql-5.1.51 nginx-1.8.0 shifttest.sh vartest.sh

18.[root@iZ28g26851kZ ~]# cat test10.txt

19.#

20.# /etc/fstab

21.# Created by anaconda on Mon Aug 11 16:27:41 2014

22.#

23.# Accessible filesystems, by reference, are maintained under '/dev/disk'

24.# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info

25.#

26.[root@iZ28g26851kZ ~]#

例:将所有的 / 替换成 “@O@”

view sourceprint?01.[root@iZ28g26851kZ ~]# sed 's#/#@O@#g' /etc/fstab

02.

03.#

04.# @O@etc@O@fstab

05.# Created by anaconda on Mon Aug 11 16:27:41 2014

06.#

07.# Accessible filesystems, by reference, are maintained under '@O@dev@O@disk'

08.# See man pages fstab(5), findfs(8), mount(8) and@O@or blkid(8) for more info

09.#

10.UUID=e76a7b8d-20c2-4f94-bdd1-f4054a34c206 @O@ ext4 defaults,barrier=0 1 1

11.tmpfs @O@dev@O@shm tmpfs defaults 0 0

12.devpts @O@dev@O@pts devpts gid=5,mode=620 0 0

13.sysfs @O@sys sysfs defaults 0 0

14.proc @O@proc proc defaults 0 0

15.[root@iZ28g26851kZ ~]#

-i

之前说过sed所有的操作都是针对模式空间进行的,并不会影响到源文件,

那如果确实像将源文件修改掉呢?

那就使用-i选项

这样就直接操作的是源文件了,所以慎用~~

-e

同时执行多个脚本

view sourceprint?1.sed -e 'AddressComment' -e 'AddressComment' file ...

-f

将脚本写到一个文件中,每一行为一个脚本,然后,,,

view sourceprint?1.sed -f /xxx/xxx.xx file ...

-r

支持扩展正则表达式

======================================

例:从文件目录中找出文件的目录

view sourceprint?1.[root@iZ28g26851kZ ~]# echo '/test/test2/etc/passwd' | sed -r 's@^(/.*/).+/?@@'

2./test/test2/etc/

3.[root@iZ28g26851kZ ~]#

例:从文件目录中找出文件名

view sourceprint?1.[root@iZ28g26851kZ ~]# echo '/test/test2/etc/passwd' | sed -r 's@^(/.*/)(.+)/?@@'

2.passwd

3.[root@iZ28g26851kZ ~]#

笔记本电脑维修点网站内容来源:https://www.vip-chn.com/book/computer/371.html

笔记本维修配件价格
上一篇: 如何关闭win10推送Win10升级提示关闭方法介绍
下一篇: Windows10周年更新访问网页时IE自动切换到Edge
隐藏边栏