Linux20180427六周第二次课(4月26日)

六周第二次课(4月26日)

9.4/9.5 sed

sed -n '/关键字/'p 文件名

支持 . * +(脱义),如果不想脱义的话,可以使用-r选项

其他的也都是可以匹配的,只是稍微麻烦。

如果想用sed打印指定的行

sed -n '2'p passwd

打印第二行

sed -n '2,5'p passwd

打印2-5行

sed -n '2,$'p passwd

打印第二行到最后一行

sed -n '1,$'p passwd

打印全部的行

-e表示可以同时执行多条匹配

sed -e '1'p  -e '/root/'p -e '/oo*/'p passwd

相当于把三个条件满足的都打印出来

另外sed也可以大小写全部打印出来,在p前面加上一个I 大写的I

sed -n  '/bus/'Ip passwd

sed还有一个作用是显示剩余的行,sed '要删除的行'd filename

sed '1,10'd test,txt

的意思就是打印删除10行后剩余的内容

当然也可以按照关键字所在的行删除显示剩余的。 比如查看非root所在行。可以 sed '/root/'d passwd

sed 有一个真正删除的选项 -i  真的会把内容进行更改

sed -i‘行'd filename

除了按照行号来删以外还可以按照关键字所在的行来删。

sed -i '/zt/'d passwd 是将含有root的那一行删掉

当然sed最重要的功能是查找替换

sed '1,10s/home/lovebay/g' passwd1

1-10行  home换成 lovebay g代表全局

sed替换也支持正则。

sed  -r '1,5/lov+/my/g' passwd1 记住要有一个选项 -r

下面这个替换是将第一位和最后以为进行了互换位置

sed -r 's/([^:]+):(.*):([^:]+)/\3:\2:\1/'  [^:]非:开头  (.*):一直匹配到最后一个:的位置 最后也是一个非:开头 然后后面跟的是位置

如果有/的时候要脱义 \ 或者有其他的符号作为分割符比如@#

head passwd1 |sed 's/\/bin\/bash/123/g'

head passwd1 |sed '[email protected]\/bin\/[email protected]@g'

如果是想把所有的英文字母删掉

head passwd1 | sed 's/[a-zA-Z]//g' 这个比较好理解

如果想在每一行前面加上aaa如何办?

两个办法,第一个办法是\1这个位置符前面加东西

head passwd1 | sed -r 's/(.*)/aaa:\1/'

或者是用&表示前面括号里的内容

原文地址:http://blog.51cto.com/13691454/2108375

时间: 2024-10-07 23:49:52

Linux20180427六周第二次课(4月26日)的相关文章

三周第二次课(12月26) 3.4 usermod命令 3.5 用户密码管理 3.6 mkpasswd命令

三周第二次课(12月26) 3.4 usermod命令3.5 用户密码管理3.6 mkpasswd命令 usermod命令: 用户和工作组管理: usermod命令用于修改用户的基本信息. usermod命令不允许你改变正在线上的使用者帐号名称. 当usermod命令用来改变user id, 必须确认这名user没在电脑上执行任何程序. 你需手动更改使用者的crontab档. 也需手动更改使用者的at工作档. 采用NIS server须在server上更动相关的NIS设定. 语法: usermo

Linux学习笔记第三周第二次课(2月6日)

3.4 usermod命令 更改用户属性usermod, 更改UID,命令为#usermod -u 编号: 更改GID,命令为#usermod -g 编号: 更改用户家目录,命令为#usermod -d 编号: 更改用户shell,命令为#usermod -s 编号: 设置用户扩展组,命令为#useradd -G 组名[,组名]: 查看aming用户UID,GID,扩展组,#id aming : 锁定用户不能使用,命令为#usermod -L aming: 解锁用户,命令为#usermod -U

linux六周第二次课(3月13日)笔记

六周第二次课(3月13日)9.4sed(上)9.5sed (下) 9.4sed(上) 匹配到会连续打印两次 不想把无关的打印出来,加-N. 需要脱意符 不加脱意符,-n后面要加r 匹配两次O 打印出文件第2-5行的用法 打印出文件所有行的用法 打印出包含某个字符的行 9.5sed (下)set区分大小小的用 编辑文件 加入一行 半年的日志,删除前五个月,只留最后一个月.根据时间,用grep查行数.用vim打开文件,非常耗费内存,用set可以直接删掉. 删除带有user的行 替换功能 加上r才能生

四周第1次课(2月26日)

四周第一次课(2月26日)4.10/4.11/4.12 lvm讲解4.13 磁盘故障小案例 4.10lvm讲解(上) ctrl+u可以把8e删除掉. 创建物理卷 如果不知道安装包,可以根据命令查找安装包. 显示没有这个文件 需要输入一个命令 运行#pvcreate /dev/sdb1sdb有问题,运行df -h,显示sdb还在挂载. 运行命令#umount /mnt 给ext4签名 运行命令:#pvdisplay 4.12lvm讲解(中)运行命令pvs,更直观 创建卷组卷组信息 格式化成ext4

四周第一次课(2月26日)

4.10/4.11/4.12 lvm讲解4.13 磁盘故障小案例  4.10 lvm讲解(上) 图讲解 两块硬盘 A B A两个分区 B一个分区 共三个分区 三个分区组成一个物理卷(physical volume) 然后物理卷上面再组成卷组(volume group),卷组1有物理卷1,卷组2有物理卷2,3. 卷组就是物理卷的一个集合. 卷组基础上划分逻辑卷,卷组1里有逻辑卷1,卷组有逻辑卷2,3. 最终在逻辑卷上面进行格式化,再挂载到系统上面使用. 分区准备 fdisk /dev/sdb n创

六周第二次课(1月16日)

9.4/9.5 sed sed是一种流编辑器,它是文本处理中非常中的工具,能够完美的配合正则表达式使用,功能不同凡响.处理时,把当前处理的行存储在临时缓冲区中,称为"模式空间"(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕.接着处理下一行,这样不断重复,直到文件末尾.文件内容并没有 改变,除非你使用重定向存储输出.Sed主要用来自动编辑一个或多个文件:简化对文件的反复操作:编写转换程序等. set -n "/root/&

三周第二次课(2月6)

3.4 usermod命令 3.5 用户密码管理 3.6 mkpasswd命令 3.4 usermod 更改用户权限的属性  可以更改用户的UID(#usermod -u 111 username),GID(#usermod -g ID或者组名 username) #usermod -d 路径 username 家目录 #usermod -s /sbin/nologin username #id aming uid=1000(aming) gid=1000(aming) 组=1000(aming

2018.4.26 六周第二次课 (正则sed 替换)

sed工具介绍(替换.及替换指定的字符) sed介绍:sed工具主要是替换的文本输出到屏幕上,而且还有其他更丰富的功能.sed命令格式:sed -n 'n' p filename,单引号内的n是一个数字,表示几行.-n选项的作用就是只显示我们要打印的行,无关紧要的内容不显示. 创建一个sed目录,把passwd文件拷贝进来,方便后面学习. [[email protected] ~]# mkdir sed #创建一个目录 [[email protected] ~]# cd sed/ #进入到目录s

Linux学习笔记第四周第一次课(2月26日)

4.10/4.11/4.12 lvm讲解 LVM是逻辑盘卷管理(LogicalVolumeManager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和 分区之上的一个逻辑层,来提高磁盘分区管理的灵活性.通过LVM系统管理员可以轻松管理磁盘分区,如:将若干个磁盘分区连接为一个整块的卷组 (volumegroup),形成一个存储池.管理员可以在卷组上随意创建逻辑卷组(logicalvolumes),并进一步在逻辑卷组上创建文件系 统.管理员通过LVM可以方便的调整存