我有 2000 个 txt 文件,需要读取其中的第一行(它应该包含一个人的名字)。
理想情况下,我会有一个电子表格/csv
FILENAME, FIRST LINE OF FILE
答案1
在 Windows 下,您可以使用批处理文件执行此操作:
@echo off
setlocal enabledelayedexpansion
set OUTPUT=names.csv
del %OUTPUT% > nul 2>&1
for %%f in (*.txt) do (
set /p NAME=< %%f
echo %%f,!NAME! >> %OUTPUT%
)
endlocal
如果您想要不带扩展名的文件名,请将 for 循环更改为:
for %%f in (*.txt) do (
set /p NAME=< %%f
set INPUT=%%f
echo !INPUT:~0,-4!, !NAME! >> %OUTPUT%
)
答案2
我想到最好的办法是
$ perl -e 'for(@ARGV){open($f,"<",$_);print"$_,",scalar<$f>}' *.txt
aaa.txt,aaa
bbb.txt,bbb
Perl 可以在 Windows 以及 Unix、Linux 等上运行 - 但您可能需要先安装它。