1、SHELL编程Sed语句案例实战

1)SHELL编程四剑客之二的Sed工具,主要是用于Linux系统文本文件的编辑、
打印的,也称为非交互模式编辑器(vi|vim交互模式编辑器),Sed工具的语法
格式:
sed -option(参数) ‘Command’(命令) file(文件对象)
 Option参数:-i(修改)、-n(静默模式)、-e(扩展)、-l、-b、-c;
 Command命令:p(打印)、d(删除)、N(多行)、G、D;
2)SHELL编程四剑客Sed工具案例操作一,基于Sed工具将list.txt文件中的用户
名root改为jfedu,命令如下:
sed s/jfedu/root/g list.txt
sed 's#jfedu#root#g' list.txt
sed -i 's#jfedu#root#g' list.txt
sed -e '3s/2/100/g' -e '4s/3/100/g' list.txt
sed '3s/2/100/g;4s/3/100/g' list.txt
sed '3,$s/11/100/g' list.txt3)替换jfedu.txt文本中old为new:
sed
's/old/new/g'
jfedu.txt
4)打印jfedu.txt文本第一行至第三行:
sed    -n '1,3p'      jfedu.txt
5)打印jfedu.txt文本中第一行与最后一行:
sed   -n '1p;$p'     jfedu.txt
6)删除jfedu.txt第一行至第三行、删除匹配行至最后一行:
sed       '1,3d'     jfedu.txt
sed     '/jfedu/,$d'   jfedu.txt
7)删除jfedu.txt最后6行及删除最后一行:
for
i  `;do sed -i
'$d' jfedu.txt ;done
sed    '$d'  jfedu.txt
8)删除jfedu.txt最后1行:
sed   '$d'   jfedu.txt
9)在jfedu.txt查找jfedu所在行,并在其下一行添加word字符,a表示在其下一
行添加字符串:
sed   '/jfedu/aword'    jfedu.txt
10)在jfedu.txt查找jfedu所在行,并在其上一行添加word字符,i表示在其上
一行添加字符串:
sed     '/jfedu/iword'    jfedu.txt
11)在jfedu.txt查找以test结尾的行尾添加字符串word,$表示结尾标识,&在
Sed中表示添加:
sed    's/test$/&word/g'    jfedu.txt
12)在jfedu.txt查找www的行,在其行首添加字符串word,^表示起始标识,
&在Sed中表示添加:
sed     '/www/s/^/&word/'     jfedu.txt
13)多个sed命令组合,使用-e参数:
sed -e '/www.jd.com/s/^/&1./' -e 's/www.jd.com$/&./g'   jfedu.txt
14)多个sed命令组合,使用分号“;”分割:
sed -e '/www.jd.com/s/^/&1./;s/www.jd.com$/&./g' jfedu.txt
15)Sed读取系统变量,变量替换:
WEBSITE=WWW.JFEDU.NET
Sed “s/www.jd.com/$WEBSITE/g” jfedu.txt
16)修改Selinux策略enforcing为disabled,查找/SELINUX/行,然后将其行
enforcing值改成disabled、!s表示不包括SELINUX行:
sed -i     '/SELINUX/s/enforcing/disabled/g' /etc/selinux/config
sed -i    '/SELINUX/!s/enforcing/disabled/g' /etc/selinux/config
17)合并上下两行,也即两行合并:
sed     'N;s/\n/ /'     jfedu.txt
18)打印list.txt文件的行号,命令操作如下:
 $(cat list.txt |wc -l)`;do sed -n "${i}s/^/&$i) /p" list.txt ;done
sed = list.txt |sed 'N;s/\n/) /g'
2、SHELL编程Grep语句案例实战
1)Find是Linux操作系统文件和目录的路径检索、查询工具,而Grep是Linux
系统下文本文件内容检索或者匹配工具,Grep称为全局正则表达式检索工具,
在企业中被广泛的采用。
2)Grep工具的语法格式:grep -option(参数) ‘word’(关键词) file
(文本文件);
 Option参数:-a(文本方式)、-c(统计)、-i(忽略大小写)、-n(行号)、
-v(反选)、-o(仅匹配)、-w(词组)、-A(匹配之后)、-B(匹配之
前)、-C(匹配前后);3)Grep企业案例实战一,查找/etc/passwd文件中是否存在www用户信息,
命令操作如下:
grep root /etc/passwd
grep "root" /etc/passwd
grep -w "^root" /etc/passwd
grep -i "root" /etc/passwd
4)Grep企业案例实战二,ifconfig看到网卡信息,只查看IP地址所在行信息,
命令操作如下:
ifconfig|grep netmask
ifconfig|grep -w inet

ifconfig|grep -E "172|127"
ifconfig|grep -E "([0-9]{1,3}\.){3}[0-9]{1,3}"
#创建三个文件,并且往文件中分别写入不同的代码;
 `;do touch jf$i.txt;echo jfedu jf$i >jf$i.txt;echo cat
jf$i.txt;cat jf$i.txt;echo ----------;done
5)通配符类型详解:*
0个或者多个字符、数字;
?
匹配任意一个字符;
#
表示注解;
|
管道符号;
;
多个命令连续执行;
&
后台运行指令;
!
逻辑运算非;
[ ]
内容范围,匹配括号中内容;
{ }
命令块,多个命令匹配。
6)正则表达式详解:
*
前一个字符匹配0次或多次;
.
匹配除了换行符以外任意一个字符;
.*
代表任意字符;
^
匹配行首,即以某个字符开头;
$
匹配行尾,即以某个字符结尾;
\(..\)
标记匹配字符;
[]
匹配中括号里的任意指定字符,但只匹配一个字符;
[^]
匹配除中括号以外的任意一个字符;
\
转义符,取消特殊含义;
\<
锚定单词的开始;
\>
锚定单词的结束;
{n}
匹配字符出现n次;{n,}
匹配字符出现大于等于n次;
{n,m}
匹配字符至少出现n次,最多出现m次;
\w
匹配文字和数字字符,不匹配符号;
\W
\w的反置形式,匹配一个或多个非单词字符,匹配
符号;
\b
单词锁定符;
\s
匹配任何空白字符;
\d
匹配一个数字字符,等价于[-]。
7)常用GREP工具企业演练案列:
grep -c "test"
jfedu.txt 统计test字符总行数;
grep -i "TEST"
jfedu.txt 不区分大小写查找TEST所有的行;
grep -n "test"
jfedu.txt 打印test的行及行号;
grep -v "test"
jfedu.txt 不打印test的行;
grep "test[53]"
jfedu.txt 以字符test开头,接5或者3的行;
grep "^[^test]"
jfedu.txt 显示输出行首不是test的行;
grep "[Mm]ay"
jfedu.txt
匹配M或m开头的行;
grep "K…D"
jfedu.txt
匹配K,三个任意字符,紧接D的行;
grep "[A-Z][9]D"
jfedu.txt
匹配大写字母,紧跟9D的字符行;
grep "T\{2,\}"
jfedu.txt 打印字符T字符连续出现2次以上的行;
grep "T\{4,6\}"
jfedu.txt 打印字符T字符连续出现4次及6次的行;
grep -n "^$"
jfedu.txt
打印空行的所在的行号;
grep -vE "#|^$"
jfedu.txt
不匹配文件中的#和空行;grep
--color -ra -E
"db|config|sql" * 匹配包含db或者config或者
sql的文件;
grep
--color -E "\<([0-9]{1,3}\.){3}([0-9]{1,3})\>"
jfedu.txt 匹配
IPV4地址。

SHELL用法七(Sed语句)的更多相关文章

  1. SHELL用法六(Find语句)

    1.SHELL编程Find语句案例实战 1)SHELL编程四剑客工具:Find.Grep.Sed.Awk,通过四剑客可以完成常规Linux指令无法完成或者比较复杂的功能,学好SHELL编程四剑客有助于 ...

  2. Shell编程之循环语句与echo的用法

    Shell编程之循环语句与echo的用法 目录 Shell编程之循环语句与echo的用法 一.echo用法 1. echo常用选项 2. 常用的转义字符 3. 特殊符号%.#的用法 二.循环语句 1. ...

  3. shell脚本-循环选择语句

    shell脚本-循环选择语句 过程式编程语言: 顺序执行 选择执行 循环执行 注:条件中的变量,可以在执行语句中使用,不用在加上"$". if语句 根据命令的退出状态来执行命令 单 ...

  4. shell脚本之循环语句与函数

    shell脚本之循环语句与函数 echo的用法: echo -n #表示不换行输出 echo -e #输出转义字符,将转义后的内容输出到屏幕上 转义字符: \n :换行,被输出的字符从"\n ...

  5. shell 脚本之判断语句 if 详解

    使用 Linux 系统这么长时间,对 shell 脚本也算是比较熟悉.其实不管是搞开发,还是搞运维,shell 脚本都是必备的基本技能.这次抽时间好好总结一下 shell 方面的知识,综合的再学习一下 ...

  6. Linux编程 9 (shell类型,shell父子关系,子shell用法)

    一. shell类型 1.1  交互式 bin/ shell程序 当用户登录到某个虚拟控制台终端或是在GUI中启动终端仿真器时,默认的shell程序就会开始运行.系统启动什么样的shell程序取决于你 ...

  7. 2018年11月10日 input,print,pass 用法,条件语句+字符串

    name=input('请输入用户名')#永远等待用户输入 password=input('请输入密码') print(name) print(password) 变量定义的规则: 变量名只能是 字母 ...

  8. 在shell中使用sed命令替换/为\/

    sed命令相关: https://www.cnblogs.com/ggjucheng/archive/2013/01/13/2856901.html https://www.cnblogs.com/D ...

  9. 转 功能强大的shell:if条件语句

    原文 http://blog.zol.com.cn/2322/article_2321767.html 功能强大的shell:if条件语句 if语句测试条件,测试条件返回真(0)或假(1)后,可相应执 ...

随机推荐

  1. i春秋2020新春公益赛WP

    Re Factory 主函数fork了一个子进程,父进程添加了一个信号处理器用于比对input,然后死循环挂起.子进程读入input,然后调用了关键函数. 跟进关键函数,发现是从一段内存中读取数据,然 ...

  2. 干货 | 京东云应用负载均衡(ALB)多功能实操

    应用负载均衡(Application Load Balancer,简称ALB)是京东云自主研发的一款七层负载均衡产品,主要面向HTTP和HTTPS流量的WEB应用程序,提供灵活的功能配置.应用负载均衡 ...

  3. springboot的http监控接口启动器的配置

    基于SpringBoot框架企业级应用系统开发全面实战()->03.07_http监控_recv.mp4 监控接口启动器 自定义监控接口启动器的配置 ====================== ...

  4. 题解 P2738 【[USACO4.1]篱笆回路Fence Loops】

    这题是我期中测试的一题水题,然而英文题目太长了不想读...后面考完被同学提醒后20分钟切了(心塞) 切完看了波题解,发现貌似我的方法跟大家都不一样呢... 常规做法: \(Floyd\) 这个有三页的 ...

  5. Go-语言基础-变量-类型-函数

    第一个程序 //单行注释 /* 多行注释 */ package main // 表示当前go文件属于main包 import "fmt" // 导入包 //编译型语言需要有一个入口 ...

  6. [转载]markown语法

    目录 Cmd Markdown 公式指导手册 一.公式使用参考 1.如何插入公式 2.如何输入上下标 3.如何输入括号和分隔符 4.如何输入分数 5.如何输入开方 6.如何输入省略号 7.如何输入矢量 ...

  7. Tooltips

    #include<windows.h> #include<Commctrl.h> #include"resource.h" #pragma comment( ...

  8. Python Numpy中数据的常用的保存与读取方法

    在经常性读取大量的数值文件时(比如深度学习训练数据),可以考虑现将数据存储为Numpy格式,然后直接使用Numpy去读取,速度相比为转化前快很多. 下面就常用的保存数据到二进制文件和保存数据到文本文件 ...

  9. Python的变量和注释

    变量 python的变量就像一个名字,一个变量对应一个内存地址.当我们定义一个变量时,Python解释器会在内存中开辟一片空间,用于存放各种数据(字符串.列表.元组.字典.对象....). 不同的变量 ...

  10. 《后端也要懂一点前端系列》使用webpack搭建项目

    今天突然有兴致想要学习一下前端的技术,所以特此记录学习前端之路.由于之前在公司做的项目大部分都是关于JSP页面的增删改查,所以前端后端都是一个人来写的,对于前端还只是停留在js.html.css阶段, ...