sed awk 样例
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 样例的更多相关文章
- sed awk 小例
实现数据库批量更新与回滚 create database awktest; use awktest create table user( id int unsigned not null uni ...
- shell脚本实例-菜单样例
1.9.1 实例需求 用户在进行Linux系统管理的过程中,经常需要用到查看进程的信息.用户的信息等常用的功能.本例针对这一需求,使用shell编程实现基本的系统管理 功能.通过本程序,可以按照要求实 ...
- Sed&awk笔记之sed篇
http://blog.csdn.net/a81895898/article/details/8482387 Sed是什么 <sed and awk>一书中(1.2 A Stream Ed ...
- Sed&awk笔记之sed篇(转)
Sed是什么 <sed and awk>一书中(1.2 A Stream Editor)是这样解释的: Sed is a "non-interactive" strea ...
- [svc]linux正则实战(grep/sed/awk)
企业实战: 过滤ip 过滤出第二行的 192.168.2.11. eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 ine ...
- C++的性能C#的产能?! - .Net Native 系列《三》:.NET Native部署测试方案及样例
之前一文<c++的性能, c#的产能?!鱼和熊掌可以兼得,.NET NATIVE初窥> 获得很多朋友支持和鼓励,也更让我坚定做这项技术的推广者,希望能让更多的朋友了解这项技术,于是先从官方 ...
- MarkDown+LaTex 数学内容编辑样例收集
$\color{green}{MarkDown+LaTex 数学内容编辑样例收集}$ 1.大小标题的居中,大小,颜色 [例1] $\color{Blue}{一元二次方程根的分布}$ $\color{R ...
- 33个超级有用必须要收藏的PHP代码样例
作为一个正常的程序员,会好几种语言是十分正常的,相信大部分程序员也都会编写几句PHP程序,如果是WEB程序员,PHP一定是必备的,即使你没用开发过大型软件项目,也一定多少了解它的语法. 在PHP的流行 ...
- 关于peersim样例配置文件的超详细解读(新手勿喷)
相信很多兄弟一开始接触peersim,对配置文件还是有点不适应,我看了好久的样例的配置文件,一层层去找对应的文件的方法,终于好像悟懂了一点,记下来以后回顾. 贴上代码,一点点分析. 首先要说下所谓的配 ...
随机推荐
- JavaSe:ThreadLocal
JDK中有一个ThreadLocal类,使用很方便,但是却很容易出现问题.究其原因, 就是对ThreadLocal理解不到位.最近项目中,出现了内存泄漏的问题.其中就有同事在使用ThreadLocal ...
- Hadoop技巧(03):HostName命名带来的问题
阅读目录 序 HostName 问题 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink ...
- C语言运算符优先级
优先级 运算符 名称或含义 使用形式 结合方向 说明 1 [] 数组下标 数组名[常量表达式] 左到右 -- () 圆括号 (表达式)/函数名(形参表) -- . 成员选择(对象) 对象.成员名 -- ...
- overflow:hidden与margin:0 auto之间的冲突
相对于父容器水平居中的代码margin:0 auto与overflow:hidden之间存在冲突.当这两个属性同时应用在一个DIV上时,在chrome浏览器中将无法居中.至于为啥我也不明白.
- gdb 基本知识
一 单步执行和跟踪函数调用 先给出一段代码,可以用下面介绍的例子. #include <stdio.h> int add_range(int low, int high) { int i, ...
- Microsoft SQL Server 2008 R2 安装卸载
问题 问题1 标题: Microsoft SQL Server 2008 R2 安装程序 ------------------------------ 出现以下错误: Could not open k ...
- 自定义asp.net 脚手架(基架)
Tutorials To create a customized scaffolder, see Creating a Custom Scaffolder for Visual Studio. To ...
- 快速排序算法 quick sort的理解
最近做了一下算法的一些练习,感觉基础薄弱了,只是用一些已经有的东西来完成练习如quickSort(c++使用的时候是sort(起始位置,终止位置,比较函数),这个需要加头文件),但是不知道怎么推出来, ...
- 1207MySQL 面试题
转自http://blog.itpub.net/26435490/viewspace-1133659/ 1, mysql的复制原理以及流程. (1)先问基本原理流程,3个线程以及之间的关联. (2)再 ...
- 以 Console 方式运行、调试、编译 .Net 编写的 Windows 服务
经常看到一些人在调试 Windows 服务时,很执著的在附加进程后调试!其实 .Net 编写的 Windows 应用程序,包括 Windows 服务都可以编译成 Console 程序!甚至于 ASP. ...