sed和awk的简单操作

  • sed

sed主要用来自动编辑一个或者多个文件;简化对文件的反复的操作;编写转换程序等等;非交互式的编辑器,一次只能处理一行的内容
支持正则:
sed 默认会输出文件的每一行,无论这行内容是否能匹配上匹配模式,参数p假如被匹配到的则会再输出一次。

sed -r ‘p’ file_name (p是sed的内部命令,是打印()输出的作用)

1,搜索替换

sed -r ‘s/旧的/新的/’ 文件 g(全局) s(查找) %(所有) -n(不打印默认输出)-p(默认打印输出,一般-p默认,不显示也行)

r参数不会修改内容,i 直接修改内容

 sed   -i  '1d' 1.txt   删除第一行
sed   -i '4,7d'  1.txt  删除4-7
sed -r  '2,d' 1.txt  删除第2行-最后
sed -ri '1~2d' /etc/passwd                 //删除所有奇数行 odd-numbered
sed -r '0~2d' /etc/passwd                 //删除所有偶数行 even-numbered
删除配置文件中的空行
sed -r '/^[ \t]*$/d'  1.txt 
删除注释行及空行:
sed -r '/^#/d'  1.txt 删除注释行
sed -ri '/^[ \t]*#/d  真正删除注释行
#  /^[ \t]*$/d'  删除空行
 给文件添加注释:
 sed -r '2,6s/^/#/'
 sed -i '4a\nihao' 1.txt  a插入  数字:在第几行后
 sed -ri '/^#/d' file.conf 
 sed -ri '/^[ \t]*#/d'
  • awk

awk是行处理器:优势在于处理庞大的数据文件的时候不会出现内存溢出或者是处理很缓慢的问题:默认的分隔符号是空格或者是tab键

awk中的变量:
$0:表示整行;
NF : 统计字段的个数
$NF:是number finally,表示最后一列的信息
RS:输入记录分隔符;
ORS:输出记录分隔符。
NR:打印记录号,(行号)
FNR:可以分开,按不同的文件打印行号。
FS : 输入字段分隔符,默认为一个空格。
OFS 输出的字段分隔符,默认为一个空格。
FILENAME 文件名 被处理的文件名称
$1 第一个字段,$2第二个字段,依次类推…

 awk 的工作原理是:
 awk -F":" '{print $1,$3}'/etc/passwd
begin{}   {}    end{}    filename 
行处理前的操作  行处理的动作  行处理后的动作 文件名

root@awk ~]# awk 'BEGIN{ print 1/2} {print "ok"} END{print "----"}' /etc/hosts
或者:
[root@awk ~]# cat /etc/hosts | awk 'BEGIN{print 1/2} {print "ok"} END{print "----"}'
0.5
ok
ok
----
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值