- 浏览: 2473550 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (574)
- Book (62)
- Architecture (6)
- Java (39)
- Taobao (41)
- Distributed (4)
- Life (72)
- Database (7)
- Spring (16)
- Photography (15)
- Bicycle (41)
- Test (20)
- jBPM (8)
- Business (12)
- Movie (3)
- Ajax (15)
- Code (7)
- Eclipse (96)
- VIM (2)
- Music (6)
- Groovy (10)
- AutoHotKey (3)
- Dorado (10)
- Maven (7)
- Scrum (5)
- English (20)
- Financial (12)
- OSGi (3)
- Other (4)
- Tool (6)
- Browser (1)
- PPT (1)
- Project Management (4)
- Agile (6)
- Nosql (1)
- Search engine (6)
- Shell (2)
- Open Source (4)
- Storm (10)
- Guava (3)
- Baby (1)
- netty (1)
- Algorithm (1)
- Linux (1)
- Python (2)
最新评论
-
roy2011a:
https://github.com/ebottabi/sto ...
storm的序列化问题及与spring的结合方式 -
roy2011a:
能抗能打 写道哥们儿,你好!能共享下那个storm与sprin ...
storm的序列化问题及与spring的结合方式 -
Alick1:
兄弟,你之前是不是在深圳的正阳公司呆过啊?
storm的ack和fail -
liuleixwd:
先点个赞,写的非常好!有个问题请教下,如果我再bolt里不用e ...
storm的ack和fail -
yao-dd:
solr的facet查询
一般用过linux脚本的都知道"awk -d"的用法: 只显示有重复数据行,每种重复行只显示其中一行.
而我的需求是希望显示所有的重复行, 而不是只是一行. 因为目前对shell脚本不是很熟练, 下面是java代码的实现,感觉比想象的复杂, 备忘一下:
而我的需求是希望显示所有的重复行, 而不是只是一行. 因为目前对shell脚本不是很熟练, 下面是java代码的实现,感觉比想象的复杂, 备忘一下:
public class ReadCardCode { public static void main(String[] args) throws Exception { BufferedReader reader = new BufferedReader(new FileReader("sort.log")); BufferedWriter writer1 = new BufferedWriter(new FileWriter("result.log")); BufferedWriter writer2 = new BufferedWriter(new FileWriter("result-2.log")); int count = 6; int i = 0; String current = null; String curItemId = null; // 将同一商品的所有记录取出放到一边, 如果这些记录大于1则说明有重复, 输出. 否则抛弃 List<String> lineList = new ArrayList<String>(10); try { while ((current = reader.readLine()) != null) { String[] curArray = current.split(" "); if (curItemId == null) { // 首行 lineList.add(current); } else { // 下一行 if (curArray[2].equals(curItemId)) { // 相同行加入列表 lineList.add(current); } else { writeLineList(writer1, writer2, lineList); // 下一轮首行 lineList.clear(); lineList.add(current); } } curItemId = curArray[2]; // if (i++ > 6) { // break; // } } writeLineList(writer1, writer2, lineList); } catch (Exception e) { e.printStackTrace(); } finally { try { writer2.close(); writer1.close(); } catch (Exception ee) { ee.printStackTrace(); } } } private static void writeLineList(BufferedWriter writer, BufferedWriter writer2, List<String> lineList) throws IOException { if (lineList.size() > 1) { // 输出前面相同行 for (String line : lineList) { write(writer, writer2, line); } } } private static void write(BufferedWriter writer, BufferedWriter writer2, String str) throws IOException { BufferedWriter w = writer; // String[] curArray = str.split(" "); // String itemId = curArray[2].replace("itemId=", ""); // long route = Long.valueOf(itemId) % 2; // if (route == 1) { // w = writer; // } else { // w = writer2; // } w.write(str); w.newLine(); w.flush(); } }
评论
2 楼
night_stalker
2010-06-08
用 stdio 更通用
调用:
gets("\0").lines.group_by{|l|l[/:.+/]}.each{|_,v|puts v if v[1]}
调用:
ruby p.rb < sort.log > result.log
1 楼
RednaxelaFX
2010-06-07
也就是说Ruby脚本的话:
open('result.log', 'w') {|f| File.readlines('sort.log').group_by {|l| l.split[2]}.each {|_, v| f << v if v.size > 1} }
发表评论
-
使用Externalization更高效的实现java对象序列化
2012-04-04 22:38 3152Externalization没用过, 它通过牺牲默认序列化的 ... -
关于java的检查异常和非检查异常
2012-04-04 21:31 4980这里有一个关于java的检查异常和非检查异常的观点, 我比较赞 ... -
使用ThreadLocal保证DateFormat线程安全
2012-04-03 06:45 3606大家都知道DateFormat是线程非安全的, 一般在多线程环 ... -
使用枚举实现一个状态机
2012-04-02 23:14 3945非常巧妙的一个使用枚举的例子.原文见这里 interface ... -
一个同步队列例子
2012-04-02 21:35 1578这个用的也比较少, 做一个参考, 原文见这里 private ... -
一个读写锁的例子
2012-04-02 21:20 1534用的比较少, 做一个参考. 原文在这里 public clas ... -
如何计算一个合适的线程池大小参数
2012-04-02 20:57 9072原文在这里 下面是一个计算的框架代码: /** * A ... -
正确使用日志的10个技巧
2012-02-11 21:13 28861做一个苦逼的Java攻城师, 我们除了关心系统的架构这种hig ... -
Java编程最差实践
2012-02-04 17:54 26671原文地址:http://www.odi.ch/prog/des ... -
利用jOOR简化Java 反射使用
2012-01-15 20:39 5159原文:http://lukaseder.wordpress.c ... -
《Java Performance》书评
2012-01-15 18:32 2967原文: http://java.dzone.com/rev ... -
《细说Java》读书笔记
2011-10-05 15:01 1998国人写的, 感觉是一 ... -
《Java开发超级工具集》读书笔记
2011-09-28 08:59 2102"工欲善其事必先利其器", 在平时的开发 ... -
《effective java》 读书笔记
2011-07-02 14:52 7608读第一版已经是好几年前的事儿了, 现在想起来也没什么印象, ... -
关于方法返回值的两种处理模式
2010-05-13 09:06 2035目前在处理返回值方面, ... -
JVM调优汇总
2010-02-21 19:18 14419参考网址 http://pengjiaheng.spaces. ... -
log4j的输出转换模式
2009-12-12 10:02 1280转换模式(conversion pattern)为" ... -
java正则表达式用法举例
2009-12-08 11:27 4523java正则表达式真难用啊, 这里整理一个java正则表达式用 ... -
Ibatis TypeHandler使用总结
2009-11-25 19:33 16555ibatis中有一个TypeHandler(准确的说应该是Ty ... -
ibatis参数传递小技巧
2009-10-30 14:21 3927使用ibatis操作数据库的时候, 如果这个操作需要一些参数, ...
相关推荐
MOXA AWK-3121 是一种工业级无线设备,具有 web 功能配置、IP 网络参数设置、工作模式选择、功率增强等特点。本文将详细介绍 MOXA AWK-3121 的配置方法及要点说明。 一、Web 功能配置 MOXA AWK-3121 的 web 功能...
Moxa AWK-3131A 三合一工业级无线AP/Bridge/Client 支 持IEEE 802.11n 技术,数据传输率高达300Mbps,满足了 不断增长的快速数据传输和信号覆盖范围更广泛的要求。 AWK-3131A 符合各种工业标准,包括工作温度、输入...
### AWK-4121系列室外无线AP/网桥/客户端关键技术知识点 #### 一、产品概述 AWK-4121是一款专为工业级应用设计的室外无线接入点/AP、网桥及客户端三合一设备。它适用于不易布线、布线成本较高或者需要在移动TCP/IP...
摩沙AP用戶手冊
MOXA_AWK3121是一款工业级无线设备,常用于工业自动化领域,为有线网络提供无线接入点(AP)功能或无线客户端(Client)功能。该设备可通过Web界面进行配置管理,且其配置包括网络参数、工作模式选择、功率增强、固件...
awk-思维导图
- awk虽然不专门用于排序,但结合其他工具可以实现排序功能。 #### 五、awk的应用场景 1. **日志分析**: - awk非常适合处理日志文件,提取关键信息,如IP地址、访问时间等。 2. **数据提取**: - 从复杂的...
在Linux系统中,awk是一...通过这些基本操作,你可以实现条件查询、去重和分组等功能,这些功能类似于SQL中的SELECT、DISTINCT和GROUP BY等操作。awk的灵活性和强大功能使得它在文本处理和数据分析领域具有很高的价值。
### awk教程知识点详解 #### 一、awk简介 - **定义**:`awk`是一种用于文本数据处理的强大工具,属于解释型编程语言。 - **用途**:主要用于数据分析、报告生成等场景,尤其适用于处理结构化的文本文件。 #### 二...
GAWK是完全符合POSIX标准的awk实现,提供了更多的功能和灵活性。 本书的核心内容包括AWK的编程规范、语法和使用技巧。AWK的工作原理是通过正则表达式匹配输入中的模式,并根据匹配情况执行相应的动作。这种数据驱动...
通过awk,你可以方便地处理CSV文件,进行数据分析,甚至实现简单的脚本任务。 4. Linux-101-hacks:Linux操作系统是开源的,提供了丰富的命令行工具和强大的系统管理功能。这个主题可能包括常用命令的使用,如ls、...
这个名为"AWK-file.rar_awk_awk tcl_delay awk_jitter awk _jitter ns-2"的压缩包文件显然是针对网络性能分析的,特别是使用AWK进行分析。下面将详细介绍涉及的知识点。 1. **AWK**: AWK是一种编程语言,由Aho、...
- **解析**:使用正则表达式匹配第一个和第二个单词,`\1\3` 表示保留第一个和第三个捕获组,即保留了第一个单词及之后的部分,去除了第二个单词。 6. **删除一个文件的每行中的倒数第2个单词** ```shell sed 's...
- **引用数组元素、使用循环遍历awk数组、删除数组元素、多维数组、SUBSEP下标分隔符、用asort为数组排序、用asorti为索引排序**:Awk的关联数组是处理文本数据的强大工具,它允许使用任意字符串作为数组的索引。...
在`awk script`这个压缩包中,只有一个名为"awk script"的文件,这可能是实现上述功能的`awk`源代码。实际使用时,我们需要将这个脚本与`ns2`的追踪文件一起运行,通常通过命令行执行,如: ``` awk -f awk_script ...
总之,"all-awk.rar"提供的"All.awk"脚本是NS2仿真数据分析的一个实用工具,它利用AWK的强大功能,简化了对复杂网络模拟数据的处理过程。对于网络研究人员和工程师来说,掌握AWK和NS2的结合使用,不仅可以提高工作...
AWK 是一种处理文本文件的语言,是一个强大的文本分析工具。 之所以叫 AWK 是因为其取了三位创始人 Alfred Aho,Peter Weinberger, 和 Brian Kernighan 的 Family Name 的首 字符。
awk 的调用方式有三种:一是使用 awk 命令行,二是使用-f 选项调用 awk 程序,三是利用命令解释器调用 awk 程序。awk 程序设计语言可以完成 grep 和 sed 所能完成的全部工作,并且具有样式装入、流控制、数学运算符...
3D-awk-raycaster.zip,用光线投射技术完全用gawk编写的伪三维射手,3D建模使用专门的软件来创建物理对象的数字模型。它是3D计算机图形的一个方面,用于视频游戏,3D打印和VR,以及其他应用程序。