当前位置: 首页 > news >正文

从一个文本文件中挑选出符合条件的内容行

  某天,张三得到一个需求,将如下格式的文本文件中的文件名开头的内容行提取出来,存入一个新的文本文件。

ok
0
文件名:1_zoukaige.mp3
index:10
文件名:2_dahan.mp3
index:20
文件名:3_kuai.mp3
index:30
文件名:4_weixiao.mp3
index:40
文件名:10_zoukaige.mp3
index:50
文件名:12_zoukaige.mp3
index:6
……
5

  张三大致看了一下文本内容,足有几千行,这个我熟啊,搞个Java文件读取,过滤一下,分分钟拿下,于是开始了编码。

File f = new File("wb.txt");
String res = "";
try {InputStream is = new FileInputStream(f);InputStreamReader isr = new InputStreamReader(is);BufferedReader br = new BufferedReader(isr);String t;while((t = br.readLine())!=null){if(t.startsWith("文件名")){sb.append(t+"\r\n");}}is.close();isr.close();res = sb.toString();File f2 = new File("wb2.txt");FileOutputStream fout = new FileOutputStream(f2);OutputStreamWriter osw = new OutputStreamWriter(fout);//UTF-8osw.write(res);osw.close();
} catch (Exception e) {
}
return res;

  完成任务后,张三正要去找王哥,回头一看,突然发现王哥正在身后看着他呢,“王哥,这个任务,我完成了!”

“嗯,我看到了,你把文件发我,你这效率不行啊,下次不找你了”,王哥说着话走了。

“啊?这……”。

张三发送完文件,有些郁闷,心想这也挺快的呀,不到十分钟就完成了呀。

张三找旁边的李四,说了说情况,李四听完又看了看张三的代码,说:“嗯,其实有更简单的方法,不用写代码就能实现,你看我的!”

李四接过张三的键盘,按ctrl + alt + t打开终端,切换路径,输入cat wb.txt | grep '^文件名' > wenjianming.txt,打开wenjianming.txt,说:“看到没,这样就实现了,比你那个快吧”

“四哥,这命令牛皮啊,具体啥意思?”

“cat wb.txt就是输出文本文件的内容,| 后面的grep命令,就是根据前面cat命令的输出,进行过滤,引号里面的^文件名的意思就是以文件名字符串开头的内容要保留下来,其他忽略”

张三一脸震惊的看着李四:“没想到还有这种操作,四哥,请收下我的膝盖”

“别整这一出,赶紧写代码吧”

“四哥,咱现在用的是Linux系统,这个我会了。要是Windows系统得怎么办?”

“Windows命令行对utf8格式的文本文件支持不好,改一下编码格式到gbk或者ANSI编码,然后执行type wb.txt | findstr "^文件名" > wenjianming.txt就行了,这里要用双引号”

“四哥,我有一个文本文件里面保存了许多网址,格式是这样的,你看看”

电影
http://www.dy.com
http://www.mv.com音乐
http://www.mp3.com
http://www.jiu.com
http://www.dd.com小说
http://www.xhs.com
http://www.jy.com

如果,我想只把分类都提取出来,我该怎么写命令呢?

“不行,我得写代码了,工作比较着急”,李四拒绝了。

“四哥,中午我请你吃饭,帮个忙啊”

“好吧”,李四又输入了一行命令cat wangzhi.txt | grep -v "^$" | grep -v "^http",回车后,就只显示了分类。“看到了吧,后面的grep -v相当于去除空行和http开头的行,这样剩下的就是分类了”
在这里插入图片描述

中午,张三请李四吃了饭,约好有空再向他请教。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 大数据:快速入门Scala+Flink
  • 【word密码】word怎么限制格式,但可以修改文字?
  • 编写webpack插件自动上传sourceMap
  • Linux 基本指令(二)
  • 《linux系统》基础操作
  • 电力电网电线变电站输电线绝缘子无人机类数据集/农业植物病虫害类数据集/光伏板/工程煤矿矿场类数据集/道路类数据集
  • Android使用Flow封装一个FlowBus工具类
  • Linux-vim使用
  • Android Camera 预览角度和拍照保存图片角度相关
  • DNF Decouple and Feedback Network for Seeing in the Dark
  • 网络安全:构建数字世界的坚固防线
  • 【设计模式】万字详解:深入掌握五大基础行为模式
  • QT For Android开发-打开PPT文件
  • 使用ffmpeg实现音视频文件格式转换
  • 深入解析Linux驱动开发中的I2C时序及I2C高频面试题
  • 【Leetcode】101. 对称二叉树
  • [原]深入对比数据科学工具箱:Python和R 非结构化数据的结构化
  • 【vuex入门系列02】mutation接收单个参数和多个参数
  • 【编码】-360实习笔试编程题(二)-2016.03.29
  • 【跃迁之路】【641天】程序员高效学习方法论探索系列(实验阶段398-2018.11.14)...
  • Android Volley源码解析
  • canvas 五子棋游戏
  • create-react-app项目添加less配置
  • docker python 配置
  • Laravel 中的一个后期静态绑定
  • Making An Indicator With Pure CSS
  • Spring Security中异常上抛机制及对于转型处理的一些感悟
  • SSH 免密登录
  • Storybook 5.0正式发布:有史以来变化最大的版本\n
  • vue2.0一起在懵逼的海洋里越陷越深(四)
  • vue-cli3搭建项目
  • 聚簇索引和非聚簇索引
  • 聊聊directory traversal attack
  • 聊聊sentinel的DegradeSlot
  • 面试总结JavaScript篇
  • 浅谈Kotlin实战篇之自定义View图片圆角简单应用(一)
  • 事件委托的小应用
  • 算法-插入排序
  • MiKTeX could not find the script engine ‘perl.exe‘ which is required to execute ‘latexmk‘.
  • HanLP分词命名实体提取详解
  • ​RecSys 2022 | 面向人岗匹配的双向选择偏好建模
  • ‌JavaScript 数据类型转换
  • #我与Java虚拟机的故事#连载13:有这本书就够了
  • (2)nginx 安装、启停
  • (2021|NIPS,扩散,无条件分数估计,条件分数估计)无分类器引导扩散
  • (4)logging(日志模块)
  • (ISPRS,2021)具有遥感知识图谱的鲁棒深度对齐网络用于零样本和广义零样本遥感图像场景分类
  • (编程语言界的丐帮 C#).NET MD5 HASH 哈希 加密 与JAVA 互通
  • (二十四)Flask之flask-session组件
  • (几何:六边形面积)编写程序,提示用户输入六边形的边长,然后显示它的面积。
  • (免费领源码)python+django+mysql线上兼职平台系统83320-计算机毕业设计项目选题推荐
  • (一)pytest自动化测试框架之生成测试报告(mac系统)
  • (原创) cocos2dx使用Curl连接网络(客户端)
  • .locked1、locked勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .Net 6.0 处理跨域的方式