[sh]sed 4个功能
[root@lanny test]# cat test.txt
test
liyao
lanny
经典博文:
http://oldboy.blog.51cto.com/2561410/949365
http://blog.csdn.net/hello_hwc/article/details/39528879
http://blog.csdn.net/hello_hwc/article/details/39528879
SSH优化:在某一行后追加内容
sed -ir '13 iPort 52113\nPermitRootLogin no\nPermitEmptyPasswords no\nUseDNS no\nGSSAPIAuthentication no' sshd_config
在13行后追加这些内容
############################################
-n, --quiet, --silent ----suppress automatic printing of pattern space
-i [SUFFIX], --in-place[=SUFFIX]
-r 正则
p Print the current pattern space.
注:
pattern有鞋样子的意思. 正则表达式就是个鞋样子.
in place of 代替
in place 在对的位置; 适当的;
############################################
1,取行
[root@lanny test]# sed -n '3p' test.txt
jeffery
[root@lanny test]# sed -n '2,3p' test.txt
liyao
jeffery
2,过滤
[root@lanny test]# sed -n '/liyao/p' test.txt
liyao
删除第三行:
sed -n '/3/d' test.txt
3,拼凑
知识点:sed后向引用:(全屏蔽取出思想)
[root@lanny ~]# echo "oldboy oldgirl"|sed -r 's#(.*) (.*)#\1 \2#g'
oldboy oldgirl
注解:
()的作用: 's#(.*) (.*) 正则的书写,显然我们后面的()都不希望被转义
--r的作用:sed -r ,加入后面要匹配的空格符号不希望被转义,那么就加-r选项了.
sed -r 's#(.*)#chkconfig \1 off#g'
-r 不转义 后面的括号等为原来意义
(.*) 过滤出输出的内容 括起来 后面可以通过 \1取出来
[root@lanny test]# sed -r 's#(.*)#chkconfig \1 off#g' test.txt
chkconfig test off
chkconfig liyao off
chkconfig jeffery off
拼凑特例:=========================可能不好理解 grep ^ file.txt 发现什么也没匹配,
思想:什么都没屏蔽
但是这样报错呀:
[root@lanny l]# sed -r 's##a b #g' name.txt
sed: -e expression #1, char 0: no previous regular expression
======================================必须得加个东西了,那就加^吧.哈哈,也算是理解了.
[root@lanny l]# sed -r 's#^##g' name.txt
liyao
oldboy
test
[root@lanny l]# sed -r 's#^#a b #g' name.txt
a b liyao
a b oldboy
a b test
sed什么参数都不加,凭凑在最后了
思想:匹配到,替换掉.
情况一:用^匹配:
[root@lanny data]# sed 's#^#chkconfig on #g' name.txt
chkconfig on oldlanny
chkconfig on jack
chkconfig on jeffery
chkconfig on liming
情况二:用$匹配:chkconfig没加上,只匹配到最后一部分.
[root@lanny ~]# sed -r 's#$#chkconfig on #g' aa
maxiaolangchkconfig on
lannychkconfig on
lannyma.blog.51cto.comchkconfig on
awk也可以拼凑:
awk '{print $1}'
进阶:
awk '{print "chkconfig " $1 " on"}'
sed结合正则表达式过滤ip地址:
[root@lanny ~]# ifconfig eth0|sed -n '2p'
inet addr:192.168.14.134 Bcast:192.168.14.255 Mask:255.255.255.0
[root@lanny ~]#
[root@lanny ~]# ifconfig eth0|sed -n '2p'|sed -r 's#^.*addr:##g'
192.168.14.134 Bcast:192.168.14.255 Mask:255.255.255.0
[root@lanny ~]#
[root@lanny ~]# ifconfig eth0|sed -n '2p'|sed -r 's#^.*addr:##g'|sed -r 's# B.*$##g'
192.168.14.134
前2个##匹配到的过滤掉(删掉)输出.
sed -r 's#^.*addr:##g'
4,替换
[root@lanny test]# sed -i 's#lanny#jeffery#g' test.txt
[root@lanny test]# cat test.txt
test
liyao
jeffery
[sh]sed 4个功能的更多相关文章
- sed 4个功能
[root@lanny test]# cat test.txt test liyao lanny 经典博文: http://oldboy.blog.51cto.com/2561410/949365 h ...
- sed 常用的功能
1.每行后面加入一个空行 sed 'G' num.txt,保留空间(Hold Space)的内容默认值是一个空行.2.每行前面加入一个空行 sed '{x;p;x}' num.txt,交换模式空间和保 ...
- awk sed 总结
Awk总结笔记 介绍 90年代 new awk :nawk Linux 的是gawk 我们简化awk 用法 # awk [options ] ‘scripts’ file1 file2 .... # ...
- linux grep,sed,awk和diff的使用
1:grep//显示行 # grep 'main' /home/myhome/a.c//将a.c含有main的行显示出来 # grep -v 'main' /home/myhome/a.c //显示除 ...
- sed总结
[-] 简介 调用方式 选项 命令集合 寻址方式 基本用法 文件操作 附加-插入-修改文本 删除文本 替换文本 转换文本 补充 ------------------------------------ ...
- build/envsetup.sh中hmm、get_abs_build_var、get_build_var解析
function hmm() { # 打印帮助信息 cat <<EOF Invoke ". build/envsetup.sh" from your shell to ...
- shell编程之sed
一.sed (Stream Editor) 1.定位行:sed -n '12,~3p' pass #从第12行开始,直到下一个3的倍数行(12-15行)sed -n '12,+4p' pass #从第 ...
- sed武功心法(info sed翻译+注解)
本文中的提到GNU扩展时,表示该功能是GNU为sed提供的(即GNU版本的sed才有该功能),一般此时都会说明:如果要写具有可移植性的脚本,应尽量避免在脚本中使用该选项. 本文中的正则表达式几乎和gr ...
- sed修炼系列(一):花拳绣腿之入门篇
本文为花拳绣腿招式入门篇,主要目的是入门,为看懂sed修炼系列(二):武功心法做准备.虽然是入门篇,只介绍了基本工作机制以及一些选项和命令,但其中仍然包括了很多sed的工作机制细节.对比网上各sed相 ...
随机推荐
- Mysql 环境配置查询
Mysql 环境查询 1, 查看全部的引擎 a) Show engines 或者是进入到information_schama里面去查看ENGINES表 2, 查看当前用户 a) Select user ...
- 基于redis分布式锁实现“秒杀”(转载)
转载:http://blog.csdn.net/u010359884/article/details/50310387 最近在项目中遇到了类似“秒杀”的业务场景,在本篇博客中,我将用一个非常简单的de ...
- itext Protecting your PDF
/* * This class is part of the book "iText in Action - 2nd Edition" * written by Bruno Low ...
- TRIZ系列-创新原理-25-自服务原理
自服务原理的详细表述例如以下:1)物体在实施辅助和维修操作时.必须能自我服务:2)利用废弃的材料和能量: 自服务原理的第1)个比較好理解,假设一个系统在执行过程中须要进行辅助和维护操作时,最好不要借助 ...
- redis编译
简介: Redis是Nosql中比较出名的,分布式数据库缓存,提升相应的速度,降低对数据库的访问! Redis是一种高级key-value数据库.它跟memcached类似,不过数据可以持久化,(永久 ...
- linux FTP配置详解
一.vsftpd说明: LINUX下实现FTP服务的软件很多,最常见的有vsftpd,Wu-ftpd和Proftp等.Red Hat Enterprise Linux中默认安装的是vsftpd. 访问 ...
- 转:【微信小程序常见问题】下拉框选择器设置picker属性。(包括:城市、日期和时间选择器)
1.picker写法(支持日期Date.时间Time和城市自定义) wxml文件 <picker bindchange="bindPickerChange" value=&q ...
- ORA-04089: 无法对 SYS 拥有的对象创建触发器
ORA-04089: 无法对 SYS 拥有的对象创建触发器 http://bbs.csdn.net/topics/390355220 猛然发现自己是用sys用户创建表空间,创建用户,赋权,顺手就把sq ...
- Foundations of Machine Learning: Rademacher complexity and VC-Dimension(1)
Foundations of Machine Learning: Rademacher complexity and VC-Dimension(1) 前面两篇文章中,我们在给出PAC-learnabl ...
- 使用bootstrap标签页
关键字:使用标签页,静态调用html页面(使用iframe内联框架) 完整代码如下: <!DOCTYPE html> <html lang="en"> &l ...