У меня есть 2000 текстовых файлов, которые мне нужно прочитать в первой строке (она должна содержать имя человека).
В идеале я хотел бы иметь электронную таблицу / CSV с
FILENAME, FIRST LINE OF FILE
Под 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%
)
Лучшее, что я придумал, было
$ perl -e 'for(@ARGV){open($f,"<",$_);print"$_,",scalar<$f>}' *.txt
aaa.txt,aaa
bbb.txt,bbb
Perl работает как в Windows, так и в Unix, Linux и т.д., Но вам может потребоваться сначала установить его.