Chinaunix首页 | 论坛 | 博客
  • 博客访问: 483670
  • 博文数量: 401
  • 博客积分: 244
  • 博客等级: 入伍新兵
  • 技术积分: 2215
  • 用 户 组: 普通用户
  • 注册时间: 2012-08-04 10:02
文章分类

全部博文(401)

文章存档

2013年(37)

2012年(364)

分类:

2012-08-16 15:35:10

原文地址:两个shell例子 作者:ubuntuer

1.在ping前面加时间
    while :;do ping -c 1 172.17.39.251|awk '/ttl=/' | sed "s/^/`date +%Y-%m-%d\|%T` /";sleep 1;done

2.消除相同的文件名
./2006/20060721b/p044559_47.txt
./2006/20060728a/p044559_47.txt
./2007/20070606News/p044559_47.txt
./Olympic City/Shanghai/Cityscape/p044559_47.txt
./2006/20060721b/p053826_01.txt
./Olympic City/Shanghai/Cityscape/p053826_01.txt
./2006/20060719News/Gome/pau52839_02.txt
./2006/20060725a/pau52839_02.txt
./2006/20060726News/TyphoonKeami/pau90550_12.txt
./2006/20060728News/SMS/pau90550_12.txt
./2006/20060714News/Motorola/dfzb20050113_056.txt
./2006/20060727News/Huawei/dfzb20050113_056.txt
./2006/20060714News/Motorola/p055816_15.txt
./2006/20060727News/Huawei/p055816_15.txt
./2006/20060714News/Motorola/p060766_04.txt
./2006/20060727News/Huawei/p060766_04.txt
./2006/20060814a/Motorola/p060766_04.txt

文本中的内容是文件所在的路径
怎么实现如果相同文件名则删除,只留其中的一份
比如
./2006/20060721b/p044559_47.txt
./2006/20060728a/p044559_47.txt
./2007/20070606News/p044559_47.txt

则删除
./2006/20060728a/p044559_47.txt
./2007/20070606News/p044559_47.txt

只留
./2006/20060721b/p044559_47.txt


    awk -F\/ '!a[$NF]++'  file 相当于
awk -F\/ '!a[$NF]++{print $0}'  file

!a[..]++是一个pattern, 只有匹配该pattern时,才执行相应的action,即print $0.
第一次时, a[...]为0 所以!a[..]为真,执行print $0. 再碰到相应的文件名a[..]不为0,!a[..]为假,所以....
阅读(240) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~