如何在命令提示符下编写批处理脚本以从多个 txt 文件中提取第 n 行?
how to write batch script on command prompt to extract nth line from multiple txt files?
我应该在 Windows 命令提示符下编写什么批处理脚本以从第 20 行的 200 个文本文件中提取值并将它们放入名为“master.txt”的新文本文件中
每个文本文件都有数百行,我只需要第20行的值。
例如
文本文件名:
test1.edit.txt
test2.edit.txt
test3.edit.txt
......
示例文件:
第 1 行 - xxxxx
第 2 行 - xxxxx ......
第 20 行- 属性100
结果:
属性 100(来自 test1.edit.txt)
属性 200(来自 test2.edit.txt)
属性 300(来自test3.edit.txt)......
提前致谢
如果你安装了 cigwin,写一个简单的 bash 脚本
看起来像:
for f in `ls f?`; do
head -9 $f | tail -1
done
更改“f?”找到你的文件名是什么(我的
是 f1、f2、f3)。将脚本另存为“line9”并将 运行 保存为
bash第9行
如果您没有 cygwin,请考虑安装它。 :-)
它确实有很多有用的 unixish 工具。
将此代码复制到批处理文件中。将 TXT 文件所在的文件夹拖到批处理文件中。它应该将所有“第 20 行”文本保存到名为“Result.txt”
的文件中
@echo off
if /i exist "%~1" (if /i not exist "%~1\" exit) else (exit)
set "Folder=%~1"
if /i exist "Result.txt" del /q "Result.txt"
pushd "%Folder%"
for /f "delims=" %%a in ('dir /b *.txt') do Call :GetLine "%%a"
popd
cmd.exe /c start "" notepad Result.txt
exit
:GetLine
for /f "skip=19 eol= delims=" %%a in ('type "%~1"') do (
echo %%a
>>%~dp0Result.txt echo %%a
goto :EOF
)
goto :EOF
我应该在 Windows 命令提示符下编写什么批处理脚本以从第 20 行的 200 个文本文件中提取值并将它们放入名为“master.txt”的新文本文件中
每个文本文件都有数百行,我只需要第20行的值。
例如
文本文件名:
test1.edit.txt
test2.edit.txt
test3.edit.txt
......
示例文件:
第 1 行 - xxxxx
第 2 行 - xxxxx ......
第 20 行- 属性100
结果:
属性 100(来自 test1.edit.txt)
属性 200(来自 test2.edit.txt)
属性 300(来自test3.edit.txt)......
提前致谢
如果你安装了 cigwin,写一个简单的 bash 脚本 看起来像:
for f in `ls f?`; do
head -9 $f | tail -1
done
更改“f?”找到你的文件名是什么(我的 是 f1、f2、f3)。将脚本另存为“line9”并将 运行 保存为 bash第9行
如果您没有 cygwin,请考虑安装它。 :-) 它确实有很多有用的 unixish 工具。
将此代码复制到批处理文件中。将 TXT 文件所在的文件夹拖到批处理文件中。它应该将所有“第 20 行”文本保存到名为“Result.txt”
的文件中@echo off
if /i exist "%~1" (if /i not exist "%~1\" exit) else (exit)
set "Folder=%~1"
if /i exist "Result.txt" del /q "Result.txt"
pushd "%Folder%"
for /f "delims=" %%a in ('dir /b *.txt') do Call :GetLine "%%a"
popd
cmd.exe /c start "" notepad Result.txt
exit
:GetLine
for /f "skip=19 eol= delims=" %%a in ('type "%~1"') do (
echo %%a
>>%~dp0Result.txt echo %%a
goto :EOF
)
goto :EOF