合并多个文本文件数据,但将特定行合并到另一个文本文件中

合并多个文本文件数据,但将特定行合并到另一个文本文件中

我有几个文本文件,文件头不感兴趣,但有一些相关数据。我想要一个包含所有重要数据的新文件:

例子

File1 包含文本:

Created on 02.02.2016
Country: Chile
Figure of Station: CAL
Frequency: 220 Hz
Messuring: 15 hours

File2 包含文本:

Created on 02.02.2016
Country: Chile
Figure of Station: GUA
Frequency: 220 Hz
Messuring: 14 hours

我想要一个包含所有重要数据的新 csv,如下所示:

CAL 220 Hz 15 hours
GUA 220 Hz 14 hours

是否可以使用批处理文件来执行类似的操作?

我知道复制.csv全部.txt,但这在这里不起作用。

这是我也有的批处理脚本。

@echo off
setlocal EnableDelayedExpansion
if exist result.csv del result.csv
for %%f in (*.txt) do (
    set i=0
    for /F "delims=" %%l in (%%f) do (
        set /A i+=1
        set line!i!=%%l
    )
    echo %%f, !line1!, !line2!, !line3!, !line4!, !line5!, >> result.csv
)

答案1

我想要一个包含所有重要数据的新文件

我已修改您的批处理文件以产生您想要的结果。

使用以下批处理文件(test.cmd):

@echo off
setlocal EnableDelayedExpansion
if exist result.csv del result.csv
for %%f in (file*.txt) do (
  set _line=
  rem we don't need the first 2 lines so skip them
  rem we only need the data after the : 
  rem so use : as the delimeter and get the rest of the tokens after the delimeter 
  for /f "skip=2 tokens=2* delims=:" %%l in (%%f) do (
    set _value=%%l
    rem strip off the space that is after the : and build up the output line
    set _line=!_line!!_value:~1! 
    )
  rem write the output line to the file
  echo !_line! >> result.csv
  )
endlocal

笔记:

  • 更改file*.txt以匹配您的文本文件。

使用示例:

F:\test>type file*.txt

file1.txt


Created on 02.02.2016
Country: Chile
Figure of Station: CAL
Frequency: 220 Hz
Messuring: 15 hours
file2.txt


Created on 02.02.2016
Country: Chile
Figure of Station: GUA
Frequency: 220 Hz
Messuring: 14 hours
F:\test>test

F:\test>type result.csv
CAL 220 Hz 15 hours
GUA 220 Hz 14 hours

F:\test>

进一步阅读

相关内容