shell编程(二):文件操作

文件操作常用命令:

dd、comm、grep、egrep、cut、head、tail、sed、awk

dd if=/dev/zero of=junk.data bs=1M count=1,
if是输入,of是输出,bs是指定文件块大小,count是文件块个数。

这里写图片描述

使用head和tail命令!
Head filename,打印文件前10行
Head –n 4 filename,打印文件前4行
Head –n -5 filename,打印文件除了最后5行之外的所有行
Seq 100 | head –n -5,seq 生成了100行的序列,输出从1到95。
Tail filename,打印后10行
Tail –n 5 filename,打印后5行
Seq 100 | tail –n +6,打印6到100(注意:tail避免打印前N行用+(N+1))。

Paste:按列合并文件

Dmesg:查看内核缓冲区

统计文件行数、单词数、字符数:
Cat file | wc -l,统计文件行数
Cat file | wc -w,单词数
Cat file | wc –c,字符数

用cut按列切分文件:
Cut –f 2,3 filename,打印文件的2,3列

统计文件中的词频:
这里写图片描述

Sed入门:(文本替换,配合正则表达式使用)

替换之后如何保存文件?
法一:
先Sed ‘s/text/replace/’ file > newfile;再mv newfile file
法二:
Sed –i ‘s/text/replace/’ file即可

替换所有的:
Sed –I ‘s/text/replace/g’ file

界定符:
上面的命令中/作为界定符,使用:或|都可以,如果要匹配的字符包含了界定符,就要使用\进行转定义。

Awk入门:(可以对行、列进行操作,包含内建数组、函数)

Awk通常包含三个部分:BEGIN语句块、END语句块和模式匹配块。三部分是否出现随意。
脚本包含在单引号或双引号内。
先执行BEGIN,然后循环执行模式匹配块,结束后执行END块。

这里写图片描述

打印文件第5列:
Cat file | awk ‘{print $5}’

打印文件4到6行:
法一:
Seq 100 | head -n 6 | tail -n +4
法二:
Seq 100 | awk “NR==4,NR==6”

通过字符串匹配打印行:
这里写图片描述

逆序打印行:
法一:
Tac,即cat反过来
法二:(awk数组保存)
seq 10 | awk ‘{arr[NR]=$0;i=NR} END{for(;i>-1;–i){print arr[i]}}’

匹配URL:
cat url.txt | egrep -o http://(\w.)+.[a-zA-Z]{2,3}
其中\w相当于[0-9a-zA-Z]

打印匹配串前后n行:(grep)
Grep –A 3 “pattern” filename,打印匹配行及其后3行
Grep –B 3 “pattern” filename,打印匹配行及其前3行
Grep –C 2 “pattern” filename,打印匹配行及其前后各2行

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值