Chinaunix

标题: 抛砖引玉,myuniq [打印本页]

作者: dourt    时间: 2005-08-22 12:11
标题: 抛砖引玉,myuniq
bbr的内容如下
bbr:
0046
0046
0046
0002
0002
0032
0043
0002
0043
0043
0035
0043
0043
0032
0032
0032
0046
0032
0032
0046
0002
0046

应用uniq
uniq bbr
0046
0002
0032
0043
0002
0043
0035
0043
0032
0046
0032
0046
0002
0046

应用代码
  1. >bbr.new
  2. for item in `cat bbr`
  3. do
  4. sed "/$item/d" bbr.new>bbr.tmp
  5. echo $item>>bbr.tmp
  6. mv bbr.tmp bbr.new
  7. done
复制代码

得到结果如下
bbr.new:
0035
0043
0032
0002
0046

目的是把文件中出现多次(1~n次)的4位数字提取出来精简成一项形成新文件
区别与uniq是保证新文件中每项唯一,uniq可把连续多行重复精简为一行
此代码缺点是当文件大时很慢,请大家交流     
作者: 寂寞烈火    时间: 2005-08-22 12:16
标题: 抛砖引玉,myuniq
try:
sort file|uniq >newfile
作者: waker    时间: 2005-08-22 12:20
标题: 抛砖引玉,myuniq
awk '!a[$0]++'
以前有论过多次了
作者: 林子    时间: 2005-08-23 17:37
标题: 抛砖引玉,myuniq
sort -u file1>file2
作者: dourt    时间: 2005-08-24 16:39
标题: 抛砖引玉,myuniq
try:
sort file|uniq >newfile

清晰一目了然
awk '!a[$0]++'

通用性极强,但我不清楚
1,!a涵义是?
2,++涵义是?
3,[$0]取每行第一域?默认分隔符是' '?如何自定义域分隔符呢?
sort -u file1>file2

简洁
多谢各位老大啦~
作者: 3x3eyes    时间: 2005-08-25 16:24
标题: 抛砖引玉,myuniq
顶一下,我对awk '!a[$0]++' 也不明白
很遗憾前辈们以前讨论这个的时候我没有看到,现在得重新问一次
作者: waker    时间: 2005-08-25 16:46
标题: 抛砖引玉,myuniq
http://phi.sinica.edu.tw/aspac/reports/94/94011/

这篇多读篇自然就懂了
作者: kakaxiong    时间: 2005-08-25 17:07
标题: 抛砖引玉,myuniq
恩恩,马上拜读
作者: 3x3eyes    时间: 2005-08-26 11:15
标题: 抛砖引玉,myuniq
很多页面是乱码,用南极星没有转换过来,请问是我的问题还是他的问题




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2