sed复制剪切功能与awk

模式空间 存储sed处理的行
不存储行
被sed 拷贝模式空间里行,被动作处理完后会,自动输出

保持空间 默认只存储一个换行符号 \n
存放在保持空间的行,不会被sed处理
也不会输出
只有存储数据的功能

模式空间 —— > 保持空间
h 覆盖
H 追加
保持空间 ——- > 模式空间
g 覆盖
G 追加

1h
Gddddddddddddddddaaaaaaaaaaaaaaaaaasedsed1h;2H; G’ a.txt

sed剪切 把文件中的第一行和第二行剪切到文件的末尾
sed ‘1h;2H;1,2d;$G’ a.txt

1d
1,3d
1d;3d;5d
/[0-9]/d

执行动作时条件的其他表示方式
/正则表达式/,/正则表达式/动作
/正则表达式/,num动作

sed ‘1,3d’ a.txt

sed ‘1,/sync/d’ a.txt

sed ‘/bin/,5d’ a.txt当起始位置为正则表达式时,无视结束为止,乱删除,难以控制

sed ‘/a/,/w/d’ a.txt

11111111111111111
xxxxxxxxxxxxxxxxx
aaaaa
11111111111
88888888888
wwwwwwwwwww
11111111111111111
xxxxxxxxxxxxxxxxx
aaaaa
11111111111
88888888888

n,+m动作 从第n行开始删,再删m行
$2,+4d

[root@sql-20 ~]# cat del2lines.sh
#!/bin/bash
sum_lines=`cat $1 | wc  -l`
s_line=`expr $sum_lines - 1`
sed -i ''$s_line',+1d' $1    #引用变量要使用单引号

n~m动作 读够m行 删除读进来的第n行
1~2d

n,~m动作 从第n行开始删,删到行号是数字m的整数倍间的行为止
3,~2d
/v/,~2d

使用awk
awk 是什么 ? 编程语言 (变量 函数 流程控制 数组 语法格式)
单独使用 ,主要用来对数据做统计
1 统计网站服务器当天的访问量
2 当天9:00~12:00访问量
3 把当前系统1小时内,cpu使用率最高前5进程 的进程名输出
用在shell脚本里,使用awk获取数据给shell程序处理
[root@sql-20 ~]# which awk
/usr/bin/awk
[root@sql-20 ~]# rpm -q gawk
gawk-3.1.7-10.el6.x86_64
[root@sql-20 ~]#

awk用法
awk ‘{动作}’ 文件列表
命令 | awk ‘{动作}’

awk 【选项】 ‘条件{动作}’ 文件列表
命令 | awk 【选项】 ‘条件{动作}’

awk如何处理数据?
以行为处理单位 逐行处理 一次处理一行 处理完当前行自动处理下一行
默认把处理结果输出的屏幕上

awk 变量 (自定义变量 、 内置变量 、 使用shell变量(自定义、环境变量))

awk自定义变量 : 变量名=值
变量名

awk ‘{ sex=”gril” ; print sex }’ a.txt
awk ‘{ sex=”gril” ; print “she is “sex }’ a.txt
awk ‘{ age=23 ; print age }’ a.txt

选项
-F 设置字段分隔符 head -2 /etc/passwd | awk -F “:” ‘{print 1"\t", 7}’

内置变量
0FILENAME<

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值