当前位置: 首页 > 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开头的行,这样剩下的就是分类了”
在这里插入图片描述

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


http://www.mrgr.cn/news/31729.html

相关文章:

  • macbook git 设置和远程克隆项目
  • python爬虫初体验(五)—— 边学边玩小游戏
  • lab2:docker基础实战
  • css 溢出隐藏显示省略号
  • 深度学习每周学习总结J5(DenseNet-121 +SE 算法实战与解析 - 猴痘识别)
  • Ubuntu22.04.2 k8s部署
  • Go-知识-定时器
  • numpy 求矩阵的特征值和特征向量
  • 【python设计模式7】行为型模式2
  • 【全网最全】2024华为杯数学建模CDEF题完整思路+代码+数据处理+参考文章
  • (undone) 学习语音学中关于 i-vector 和 x-vector
  • HTTP 协议介绍
  • OpenAI o1-preview和o1-mini现已在 GitHub Copilot和GitHub Models中提供
  • 揭露大模型本质,大模型入门必看的12本书!看完我直接跪了
  • 多图片上传功能
  • 分布式事务详细笔记:什么是分布式事务--Seata--XA模式--AT模式
  • 漫步者头戴式耳机哪个型号好?热门主流头戴式耳机专业深度评测
  • Python使用总结之FastAPI使用和配置详解(一)
  • 关于 电子专业 投简历的那点事
  • 【秋招笔试-支持在线评测】0919华为秋招(已改编)-三语言题解
  • Navicat中一些查找操作 笔记07
  • 数据结构之算法复杂度
  • Springboot3 + MyBatis-Plus + MySql + Uniapp 实现商品规格选择sku(附带自设计数据库,最新保姆级教程)
  • MFC -文件类控件
  • 【24华为杯数模研赛赛题思路已出】国赛F题第二套思路丨附参考代码丨免费分享
  • 【华为杯】2024华为杯数模研赛D题 解题思路