一些好玩的SHELL

目录

 

1,删除空行或者统计空行行数

2,计算csv文件列的和

3,统计重复次数最多的行记录

4,怎么格式化输出

5,生成日期文件


1,删除空行或者统计空行行数

  • 统计空行个数:grep ‘^$’ | wc -l 对应非空行的是grep  -v  ‘^$’ | wc -l
  • 空行替换为空

      1,grep -v '^$' file
      2,cat file | sed '/^$/d'
      3,cat file | awk '{if($0!="")print}'  or  awk '{if(length!=0)print $0}'     #  $0代表整行
      4,cat file | tr -s '\n'     #  tr相当于一个简化的的sed 这里是替换换行为空,注意换行后面没有制定内容

另外如果是windows上copy的文件,可能不好使,也可以尝试strings命令县过滤可打印字符在作操作多个空格替换为一个
cat file | sed 's/\s\+/ /g  or sed -r 's/[[:space:]]+/ /g' or sed -r 's/[ ]+/ /g'

 

2,计算csv文件列的和

测试文件前三行第三列内容和
a:b:3:123
c:d:10;abc
e:f:3:efd

[root@centos7 ~]# head -3 1.txt | awk 'BEGIN {FS=":";s=0} {s+=$3} END{print s}' 
16

3,统计重复次数最多的行记录

测试一下文件第4行道第8行重复次数最多的行打印出来

a:b:3:123
c:d:10;abc
e:f:3:efd
c:d:10;abc111
c:d:10;abc
c:d:10;abc
c:d:10;abce
c:d:10;abc
c:d:10;abc
 

[root@centos7 ~]# sed -n '4,8'p 1.txt | sort | uniq -i -c| sort -rn | head -n 1
      3 c:d:10;abc

最少的可以用tail

4,怎么格式化输出

使用column,参数-s可以指定分隔符

[root@centos7 ~]# head -3 1.txt | column
a:b:3:123       c:d:10;abc      e:f:3:efd
[root@centos7 ~]# head -3 1.txt | column -t
a:b:3:123
c:d:10;abc
e:f:3:efd
[root@centos7 ~]# head -3 1.txt | column -t -s:
a  b  3       123
c  d  10;abc
e  f  3       efd

5,生成日期文件

使用touch ora_cp_`date +%Y%m%d`.dmp或者touch ora_cp_$(date +%Y%m%d).dmp

一天前或者一天后,touch ora_cp_`date +%Y%m%d -d '1 days ago'`.dmp、touch ora_cp_`date +%Y%m%d -d '1 days'`.dmp

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

朝闻道-夕死可矣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值