+ -
当前位置:首页 → 问答吧 → shell 查找文本内容??

shell 查找文本内容??

时间:2011-07-02

来源:互联网

一个IP.TXT 文本内容如下:

192.168.0.7
192.168.0.6
192.168.0.10
192.168.0.19
192.168.0.7
192.168.0.19
192.168.0.10
192.168.0.6
192.168.0.7
192.168.0.7

。。。。。。。。
请教:如何用shell for 查找的时候,自动跳过文本内重复的IP,输出只显示一个获取到的IP结果。
例如: 192.168.0.7 这个IP在文本上出现4次,用 for 的时候如何跳过。。结果只要显示出一个IP地址。。echo 直接输出 192.168.0.7 。

不要全部输出取到的同样重复的IP

ThankS

作者: xqf   发布时间: 2011-07-02

楼主只是想剔重吗?
awk '{a[$1]=$1}END{for(i in a) print a[i]}'  file

作者: 251995427   发布时间: 2011-07-03

  1. cat file | sort | uniq
复制代码

作者: liion631818   发布时间: 2011-07-03

多谢了。。

作者: xqf   发布时间: 2011-07-03

一种纯bash的方法:
  1. $ echo '192.168.0.7
  2. 192.168.0.6
  3. 192.168.0.10
  4. 192.168.0.19
  5. 192.168.0.7
  6. 192.168.0.19
  7. 192.168.0.10
  8. 192.168.0.6
  9. 192.168.0.7
  10. 192.168.0.7' |\
  11. while read line
  12. do
  13.    [[ ${str/:$line} == ${str} ]] && echo $line && str=$str":"$line
  14. done
复制代码
#注:此方法学习自springwind426 (春之风):原帖,这里展示给大家共同学习下

作者: yinyuemi   发布时间: 2011-07-03