gpt4 book ai didi

regex - 从第 1 行到第 i 行写入 .txt 文件

转载 作者:可可西里 更新时间:2023-11-01 11:19:53 25 4
gpt4 key购买 nike

我非常接近我的答案,但我似乎无法找到它。我在批处理文件中使用 Findstr 函数现在将整个目录缩小为一个文件。

cd ...
findstr /s /m "Desktop" *class.asasm >results1.txt
findstr /m /f:results1.txt "Production" *class.asasm >results2.txt
findstr /n /f:results2.txt "Capabilities" *class.asasm >results3.txt

任务 1:我需要想办法让 findstr 从找到第三行的行号向后搜索第四个字符串

任务 2:我需要在 results2.txt 中写入文件的第 1 行 - 我们到达的那一行插入一个 .txt 文件。然后写下其余的原始行。

我正在使用 Visual Studios 在 VB.Net 中编写一个应用程序,我很难弄清楚如何完成这个过程。我目前更喜欢让应用程序运行在应用程序中编写的批处理文件。

最佳答案

正确的解决方案是找到一个可以正确执行此操作的工具。批处理/CMD 没有。

这是一个脚本,可以告诉您第 3 场和第 4 场比赛的行号。这可能不是您想要的,但它演示了如何有效地使用行号。

@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION

SET FILE=TestFile.txt

SET _LINENO=1
SET _MATCHNO=0
SET _THIRDLINENUM=
SET _FOURTHLINENUM=
FOR /F %%l IN (%FILE%) DO (
ECHO %%l | FINDSTR "Target" %_TMP% >NUL
IF NOT ERRORLEVEL 1 (
SET /A _MATCHNO=!_MATCHNO!+1
IF !_MATCHNO!==3 SET _THIRDLINENUM=!_LINENO!
IF !_MATCHNO!==4 SET _FOURTHLINENUM=!_LINENO!
)
SET /A _LINENO=!_LINENO!+1
)

@ECHO %_THIRDLINENUM% : %_FOURTHLINENUM%

这是 TestFile.txt 中的内容

abcdefg
bcdefgh
Target 1
cdefghi
defghij
fghijkl
Target 2
ghijklm
hijklmn
ijklmno
jklmnop
klmnopq
lmnopqr
mnopqrs
Target 3
nopqrst
Target 4
opqrstu
pqrstuv
qrstuvw
rstuvwx
stuvwxy
tuvwxyz

如果您坚持使用 batch/CMD(我有时会在没有其他可用的情况下这样做),并且您需要在第 #n 行获取文本(否则,head 和 tail 就可以了),您可以生成一个类似的循环,但是用将 _LINENO 与其他变量进行比较的代码替换从 FINDSTR 到 IF 语句末尾的代码,如果它在两个值之间,则回显该行。我不知道 IF 是否支持逻辑运算符,因此您可能必须嵌套 IF 语句,例如

IF !_LINENO! GEQ %START_LINE% IF !_LINENO! LEQ %END_LINE% @ECHO %%l

关于regex - 从第 1 行到第 i 行写入 .txt 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17246914/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com