文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>shell用法点滴

shell用法点滴

时间:2006-10-21  来源:yuanye1014

/******************************************************
**Shell 用法点滴
**Wang Zonghui
*******************************************************/
  1、截取日期、字符串固定长度。
例如,下列文件中第17列为日期,打印出按YYYYMMDD形式来查看该列值,并做排重处理。
[/wangzh/test] ls -l                                                                          
total 117552
-rw-r--r--   1 dsadm    dbadm      41703424 Aug 24 22:56 M05001200508011N0005.AVL
-rw-r--r--   1 dsadm    dbadm             0 Aug 24 23:01 M05002200508012N0005.AVL
-rw-r--r--   1 dsadm    dbadm      17886723 Aug 24 23:01 M05018200508012N0005.AVL
-rw-r--r--   1 dsadm    dbadm        416672 Aug 24 23:50 M05019200508252N0002.AVL

[/wangzh/test] cat M05019200508252N0002.AVL|awk -F'   ' '{print $17}'|sort -u |more           
2005081320320
2005081320332
2005081320334
2005081320342
2005081320354
2005081320370

[/wangzh/test] cat M05019200508252N0002.AVL|awk -F'   ' '{print substr($17,1,8)}'|sort -u |more
20050813
20050814
20050815
20050816

[/wangzh/test]
/***统计2005-08-15日传输的文件条数**/
[/wangzh/test] cat M05019200508252N0002.AVL|awk -F'   ' '{if(substr($17,1,8)=="20050815") total+=1} END {print "%ld\n,total}'
%ld
 430
[/wangzh/test]
    2、查看文件列数
例如,下面文件共45列(分隔符为'TAB'键)
[/wangzh/test] ls -l M05019200508252N0002.AVL
-rw-r--r--   1 dsadm    dbadm        416672 Aug 24 23:50 M05019200508252N0002.AVL
[/wangzh/test] cat M05019200508252N0002.AVL|awk -F'   ' '{print NF}'|sort -u
45

[/wangzh/test]
如文件规定为45列,若其中有46列的几行记录,则可以把这些记录打印出来
[/wangzh/test] cat M05019200508252N0002.AVL|awk -F'   ' '{if(NF>45) print $0}'
[/wangzh/test]     3、统计文件中某列符合某一值的总数或某列的和。
例如,文件中第23列为"Kjava信息费",现统计该次传输的文件中信息费的总和
[/wangzh/test] ls -l M05019200508252N0002.AVL
-rw-r--r--   1 dsadm    dbadm        416672 Aug 24 23:50 M05019200508252N0002.AVL
[/wangzh/test] cat M05019200508252N0002.AVL|awk -F'   ' '{print $23}'|more
00000080
00000000
00000030
00000050
00000080
00000030
00000150
00000080

[/wangzh/test] cat M05019200508252N0002.AVL|awk -F'   ' '{total+=$23} END {printf "infofee is: %ld\n",total}'
infofee is: 92570
[/wangzh/test]
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载