sed [options] '[action]' filename

options:

  -n:一般sed命令会把所有数据都输出到屏幕,如果加入此选项,则只会把经过sed命令处理的行输出到屏幕。

  -e:允许对输入数据应用多条sed命令编辑。

  -i:用sed的修改结果直接修改读取数据的文件,而不是由屏幕输出。

actions:

  -a:追加,在当前行后添加一行或多行

  -c:行替换,用c后面的字符串替换原数据行。

  -i:插入,在当前行前插入一行或多行。

  -d:删除,删除指定的行。

  -p:打印,输出指定的行。

  -s:字符替换,用一个字符串替换另一个字符串。格式为“行范围s/旧字符串/新字符串/g”(和vim中的替换格式类似)

 [ucm@MacBook-Pro testpace]$ cat stu.log
ID NAME GENDER SOURCE
FURONG F
FENGJ F
CANG F
[ucm@MacBook-Pro testpace]$ sed '2p' stu.log
ID NAME GENDER SOURCE
FURONG F
FURONG F
FENGJ F
CANG F
[ucm@MacBook-Pro testpace]$ sed -n '2p' stu.log
FURONG F
[ucm@MacBook-Pro testpace]$

delete 第二行到第四行的数据,但是不改变文件自身。

[ucm@MacBook-Pro testpace]$ sed '2,4d' stu.log
ID NAME GENDER SOURCE
 #在第二行后,追加该字符串
[ucm@MacBook-Pro testpace]$ sed '2a piaoliang jiushi renxing' stu.log
ID NAME GENDER SOURCE
FURONG F
piaoliang jiushi renxing
FENGJ F
CANG F
#在第二行前插入字符串
[ucm@MacBook-Pro testpace]$ sed '2i meinv' stu.log
ID NAME GENDER SOURCE
meinv
FURONG F
FENGJ F
CANG F
#c 行替换命令
[ucm@MacBook-Pro testpace]$ sed '3c FENGJ bujige' stu.log
ID NAME GENDER SOURCE
FURONG F
FENGJ bujige
CANG F
# 替换字符串
[ucm@MacBook-Pro testpace]$ sed '3s/66/90/g' stu.log
ID NAME GENDER SOURCE
FURONG F
FENGJ F
CANG F
[ucm@MacBook-Pro testpace]$ cat stu.log
ID NAME GENDER SOURCE
FURONG F
FENGJ F
CANG F
# 替换字符串 同时写入文件
# s前加数字,搜索指定位置,不加数字,搜索整篇文档;后面加g代表替换全部,不加g则,仅仅替换一处
[ucm@MacBook-Pro testpace]$ sed -i '3s/66/90/g' stu.log
[ucm@MacBook-Pro testpace]$ cat stu.log
ID NAME GENDER SOURCE
FURONG F
FENGJ F
CANG F
#执行多条sed命令
[ucm@MacBook-Pro testpace]$ sed -e 's/FENGJ/boxilai/g;s/CANG//g' stu.log
ID NAME GENDER SOURCE
FURONG F
boxilai F
F
[ucm@MacBook-Pro testpace]$ cat stu.log
ID NAME GENDER SOURCE
FURONG F
FENGJ F
CANG F
[ucm@MacBook-Pro testpace]$

排序命令:

sort [option] filename

options:

  -f:忽略大小写

  -n:以数值进行排序,默认使用字符串进行排序

  -r:反向排序

  -t:指定分隔符,默认分隔符是制表符

  -k n[,m]:按照指定的字段范围进行排序。从第n字段开始,m字段结束。(默认到行尾)

 #指定分隔符是“:”,用第三字段开头,第三字段结尾进行排序,就是只用第三个字段进行排序
[ucm@MacBook-Pro testpace]$ sort -t ":" -k "3,3" /etc/passwd
#以数值进行排序
[ucm@MacBook-Pro testpace]$ sort -n -t ":" -k "3,3" /etc/passwd

统计命令

wc [option] 文件名

options:

  -l:只统计行数

  -w:只统计单词数

  -m:只统计字符数

 [ucm@MacBook-Pro testpace]$ wc /etc/passwd
/etc/passwd
[ucm@MacBook-Pro testpace]$ wc -l /etc/passwd
/etc/passwd
[ucm@MacBook-Pro testpace]$ wc -w /etc/passwd
/etc/passwd
[ucm@MacBook-Pro testpace]$ wc -m /etc/passwd
/etc/passwd
[ucm@MacBook-Pro testpace]$

字符截取命令

awk '条件1{动作1}条件2{动作2}···' filename

条件(Pattern):

  一般使用关系表达式作为条件

  x > 10 判断变量x是否大于10

  x>=10大于等于

  x<=10小于等于

动作(Action):

  格式化输出

  流程控制语句

 [ucm@MacBook-Pro testpace]$ df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/cl-root 143G 108G 28G % /
devtmpfs 483M 483M % /dev
tmpfs 497M 156K 497M % /dev/shm
tmpfs 497M 7.1M 490M % /run
tmpfs 497M 497M % /sys/fs/cgroup
/dev/sda2 380M 130M 226M % /boot
tmpfs 100M 20K 100M % /run/user/
[ucm@MacBook-Pro testpace]$ df -h | awk '{print $1 "\t" $3}'
文件系统 已用
/dev/mapper/cl-root 108G
devtmpfs
tmpfs 156K
tmpfs 7.1M
tmpfs
/dev/sda2 130M
tmpfs 20K
[ucm@MacBook-Pro testpace]$
 [ucm@MacBook-Pro testpace]$ df -h | grep "/cl-root" | awk '{print $5}'
%
[ucm@MacBook-Pro testpace]$ df -h | grep "/cl-root" | awk '{print $5}' | cut -f -d "%" [ucm@MacBook-Pro testpace]$
 [ucm@MacBook-Pro testpace]$ awk 'BEGIN{print "this is testcase"} {print $2 "\t" $4}' stu.log
this is testcase
NAME SOURCE
FURONG
FENGJ
CANG
[ucm@MacBook-Pro testpace]$ awk 'BEGIN{print "this is testcase"}{print $2 "\t" $4}' stu.log
this is testcase
NAME SOURCE
FURONG
FENGJ
CANG
[ucm@MacBook-Pro testpace]$ awk '{print $2 "\t" $4}' stu.log
NAME SOURCE
FURONG
FENGJ
CANG
[ucm@MacBook-Pro testpace]$ awk 'END{print "this is end"} {print $2 "\t" $4}' stu.log
NAME SOURCE
FURONG
FENGJ
CANG
this is end
[ucm@MacBook-Pro testpace]$

FS内置变量

 [ucm@MacBook-Pro testpace]$ cat /etc/passwd | grep "/bin/bash"
root:x:::root:/root:/bin/bash
amandabackup:x:::Amanda user:/var/lib/amanda:/bin/bash
ucm:x:::ucm:/home/ucm:/bin/bash
[ucm@MacBook-Pro testpace]$ cat /etc/passwd | grep "/bin/bash" | grep -v root
amandabackup:x:::Amanda user:/var/lib/amanda:/bin/bash
ucm:x:::ucm:/home/ucm:/bin/bash
[ucm@MacBook-Pro testpace]$ cat /etc/passwd | grep "/bin/bash" | grep -v root | awk '{FS=":"} {print $1 "\t" $3}'
amandabackup:x:::Amanda
ucm
[ucm@MacBook-Pro testpace]$ cat /etc/passwd | grep "/bin/bash" | grep -v root | awk 'BEGIN{FS=":"} {print $1 "\t" $3}'
amandabackup
ucm
[ucm@MacBook-Pro testpace]$
 [ucm@MacBook-Pro testpace]$ cat stu.log
ID NAME GENDER SOURCE
FURONG F
FENGJ F
CANG F
[ucm@MacBook-Pro testpace]$ cat stu.log | grep -v NAME
FURONG F
FENGJ F
CANG F
[ucm@MacBook-Pro testpace]$ cat stu.log | grep -v NAME | awk '$4>=90{print $2}'
FURONG
FENGJ
[ucm@MacBook-Pro testpace]$

sed awk 样例的更多相关文章

  1. sed awk 小例

    实现数据库批量更新与回滚 create database awktest; use awktest create table user(    id int unsigned not null uni ...

  2. shell脚本实例-菜单样例

    1.9.1 实例需求 用户在进行Linux系统管理的过程中,经常需要用到查看进程的信息.用户的信息等常用的功能.本例针对这一需求,使用shell编程实现基本的系统管理 功能.通过本程序,可以按照要求实 ...

  3. Sed&awk笔记之sed篇

    http://blog.csdn.net/a81895898/article/details/8482387 Sed是什么 <sed and awk>一书中(1.2 A Stream Ed ...

  4. Sed&awk笔记之sed篇(转)

    Sed是什么 <sed and awk>一书中(1.2 A Stream Editor)是这样解释的: Sed is a "non-interactive" strea ...

  5. [svc]linux正则实战(grep/sed/awk)

    企业实战: 过滤ip 过滤出第二行的 192.168.2.11. eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 ine ...

  6. C++的性能C#的产能?! - .Net Native 系列《三》:.NET Native部署测试方案及样例

    之前一文<c++的性能, c#的产能?!鱼和熊掌可以兼得,.NET NATIVE初窥> 获得很多朋友支持和鼓励,也更让我坚定做这项技术的推广者,希望能让更多的朋友了解这项技术,于是先从官方 ...

  7. MarkDown+LaTex 数学内容编辑样例收集

    $\color{green}{MarkDown+LaTex 数学内容编辑样例收集}$ 1.大小标题的居中,大小,颜色 [例1] $\color{Blue}{一元二次方程根的分布}$ $\color{R ...

  8. 33个超级有用必须要收藏的PHP代码样例

    作为一个正常的程序员,会好几种语言是十分正常的,相信大部分程序员也都会编写几句PHP程序,如果是WEB程序员,PHP一定是必备的,即使你没用开发过大型软件项目,也一定多少了解它的语法. 在PHP的流行 ...

  9. 关于peersim样例配置文件的超详细解读(新手勿喷)

    相信很多兄弟一开始接触peersim,对配置文件还是有点不适应,我看了好久的样例的配置文件,一层层去找对应的文件的方法,终于好像悟懂了一点,记下来以后回顾. 贴上代码,一点点分析. 首先要说下所谓的配 ...

随机推荐

  1. 鹏程网用户管理系统学习(2016-07-18 by 徐鹏)

    新的平台:X平台(x.hna.net)旧的平台:鹏程网(www.hna.net) 如今的平台情况:很多业务已经转到X平台,但也存在少量的业务还是用鹏程网的旧系统.例如**用户管理系统(也逐渐转移到易服 ...

  2. freeswitch注册过程分析

    操作系统:debian8.5_x64freeswitch 版本 : 1.6.8 本文仅描述sip注册的简单场景,即话机直接向处于同一个局域网的fs进行注册. SIP协议的消息结构 消息框架 SIP协议 ...

  3. MongoDB中的数据类型

    mongoDB中存储的数据单元被称作文档.文档的格式与JSON很类似,只不过由于JSON表达的数据类型范围太小(null,boolean,numeric,string和object),mongoDB对 ...

  4. python-基本数据类型

    /int整数/ 如: 18.73.84 每一个整数都具备如下功能: class int(object): """ int(x=0) -> int or long i ...

  5. spi子系统之驱动SSD1306 OLED

    spi子系统之驱动SSD1306 OLED 接触Linux之前,曾以为读源码可以更快的学习软件,于是前几个博客都是一边读源码一边添加注释,甚至精读到每一行代码,实际上效果并不理想,看过之后就忘记了.主 ...

  6. SQL Server 2008 阻止保存要求重新创建表的更改问题的设置方法

    不是很理解为什么在2008中会加入阻止保存要求重新创建表的更改这个选项.症状表现为修改表结构的时候会"阻止"你.而且我遇到的情况是居然有的时候阻止你,有的时候不阻止你,摸不到头脑. ...

  7. Ubuntu 14.04 LTS下安装Google Chrome浏览器

    在Ubuntu 14.04下安装Google Chrome浏览器非常简单,只要到Chrome的网站下载Deb安装包并进行安装即可.当然你也可以使用APT软件包管理器来安装Google Chrome浏览 ...

  8. JavaScript代码段整理笔记系列(二)

    上篇介绍了15个常用代码段,本篇将把剩余的15个补齐,希望对大家有所帮助!!! 16.检测Shift.Alt.Ctrl键: event.shiftKey; //检测Shift event.altKey ...

  9. ACM 中 矩阵数据的预处理 && 求子矩阵元素和问题

            我们考虑一个$N\times M$的矩阵数据,若要对矩阵中的部分数据进行读取,比如求某个$a\times b$的子矩阵的元素和,通常我们可以想到$O(ab)$的遍历那个子矩阵,对它的各 ...

  10. BZOJ 2820: YY的GCD [莫比乌斯反演]【学习笔记】

    2820: YY的GCD Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 1624  Solved: 853[Submit][Status][Discu ...