網(wǎng)站首頁 編程語言 正文
概述
本文講述的是對文本的內(nèi)容進(jìn)行檢索,找到需要匹配的字符串并挑出對應(yīng)字符串輸出到新的文本中,實(shí)現(xiàn)文本內(nèi)容過濾的效果。
背景
本人在開發(fā)的過程中,經(jīng)常會打印一些 log 數(shù)據(jù)來監(jiān)測系統(tǒng)是否運(yùn)行正常,但是有時(shí)候 log 數(shù)據(jù)特別大,且有時(shí)候會有一些 log 和當(dāng)前問題不相關(guān),需要過濾掉,所以想寫一個(gè)可以提取出我所需要信息的腳本來完成log 數(shù)據(jù)的提取。
需求
1、可以提取多個(gè)字符串內(nèi)容;
2、可以輸出到另外的文本中,不對原文件進(jìn)行修改;
需求分析
根據(jù)這個(gè)需求,可以有多個(gè)方法實(shí)現(xiàn),其實(shí)簡單的就是對文本的內(nèi)容進(jìn)行查找,當(dāng)文件小的時(shí)候,其實(shí)是可以使用 Notepad++ 這樣的軟件進(jìn)行查找,但是 Notepad++ 是有大文件限制的,所以我的想法是通過 bat 腳本的方式進(jìn)行處理。
需求實(shí)現(xiàn)
@echo off
rem 需要查找的第1個(gè)字符串
set str1=""
rem 需要查找的第2個(gè)字符串
set str2=""
rem 需要查找的第3個(gè)字符串
set str3=""
rem 需要查找的文件
set filename=""
rem 在當(dāng)前腳本處查找1、2、3字符串并在輸出到當(dāng)前路徑生成的 output.txt 文件
findstr /r "%str1% %str2% %str3%" %filename% > output.txt
pause
實(shí)現(xiàn)功能
1、可以查找多個(gè)字符串;
2、可以將查找到的字符串輸出到新的文本文件;
缺點(diǎn)
1、查找的字符串不能含有空格;
使用示例
比如我當(dāng)前有一個(gè)文本文件(test.txt)的內(nèi)容如下:
test1
test2
test3
test4
test5
test6
而我需要查找“test1”和“test5”,則可以新建一個(gè) txt 文件,輸入修改后的腳本內(nèi)容為
@echo off
rem 需要查找的第1個(gè)字符串
set str1="test1"
rem 需要查找的第2個(gè)字符串
set str2="test5"
rem 需要查找的文件
set filename="test.txt"
rem 在當(dāng)前腳本處查找1、2字符串并在輸出到當(dāng)前路徑生成的 output.txt 文件
findstr /r "%str1% %str2%" %filename% > output.txt
pause
然后保存為 find.bat 到 test.txt 文件的路徑下,點(diǎn)擊運(yùn)行出現(xiàn)
關(guān)掉運(yùn)行窗口后,可以看到當(dāng)前路徑下多了一個(gè)output.txt 文件,打開后是只有“test1”和“test5”的內(nèi)容
由此完成文本的過濾。
總結(jié)
原文鏈接:https://blog.csdn.net/qq_36836950/article/details/124635786
相關(guān)推薦
- 2022-03-07 C++使用TinyXML解析XML_C 語言
- 2022-11-16 python?中collections的?deque使用詳解_python
- 2022-10-20 C++?float、double判斷是否等于0問題_C 語言
- 2022-08-31 C++淺析類與對象基礎(chǔ)點(diǎn)_C 語言
- 2022-07-10 oracle中的session
- 2022-07-25 C++超詳細(xì)講解內(nèi)存空間分配與this指針_C 語言
- 2022-06-06 Postgresql split_part()函數(shù),根據(jù)符號切割字符串
- 2023-01-11 React中映射一個(gè)嵌套數(shù)組實(shí)現(xiàn)demo_React
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支