我在的格式「的test.txt」文件之間的界線:批處理腳本提取特定的詞和重新格式化輸出文件
xdfdfdf
ydffddf
zddfdfd
blah ...
WordA
12
23
45
...
32
12
65
xdfdfdf
ydffddf
zddfdfd
blah ...
WordA
54
76
67
...
68
31
85
xdfdfdf
ydffddf
zddfdfd
blah ...
WordA
89
65
45
...
32
51
75
xdfdfdf
ydffddf
zddfdfd
blah ...
....
我想只提取數字下面的每個「wordA」,用跳過格式連續重新格式化數據,並生成一個輸出文件(如「Output.txt」)。必須注意的是,每個帶有數字數據的「wordA」下的行數是固定的(例如18行)。
結果應該是這種格式:
12 45 ... 32 65
54 67 ... 68 85
89 45 ... 32 75
....
任何人可以幫助我通過?我找到了FindRepl.bat,但是,我無法使用我想要的。我更喜歡簡單而簡短。 我對批處理腳本編程知之甚少,也嘗試爲它編寫一個嵌套循環,但它不起作用。
@echo off
setlocal enabledelayedexpansion
SET InFile=Test2.txt
SET OutFile=Output.txt
IF EXIST %OutFile% del /F %OutFile%
FOR /f "delims=:" %%a IN ('findstr /n "wordA" "%InFile%"') DO (
SET /a first=%%a + 1
SET /a last=%%a + 18
SET i=0
SET ROW=!first!
FOR /f "skip=!first! delims=" %%b IN (%InFile%) DO (
if !first! LEQ !last! set Data[!i!]=%%a
echo %%b
)
)
endlocal
我明白你是在Windows環境。將其添加到標籤。 –
您是否需要使用默認的Windows工具來完成此操作?你會考慮使用像Python這樣的腳本語言嗎?你有沒有使用awk(cygwin)這樣的文本處理工具? –
@JosepValls:還有一個選項(* .exe),但我的第一優先級是將代碼寫入批處理腳本(* .bat)。如果無法在bat文件中寫入這樣的代碼,請通知我不要再浪費我的時間了。感謝... – Afrand