Предполагая, что вы хотите выводить как 42, 19, 10207, 3 в каждой строке (без имен файлов), wc и некоторые Bash ing решают вашу проблему.
outfile="Result.csv"
for samplenum in $( seq 1 100 ) ; do
line=""
for file in sample${samplenum}.* ; do
numlines=$( wc -l <$file )
line="$line $numlines,"
done
# remove the final comma
line=${line%,}
# not quoting $line below will suppress the initial blank
echo $line >> $outfile
done
Прочитайте man bash, man wc, man seq и man bash снова
Отвечая на комментарий:
Вы читали man страницы?
$( seq 1 100) заменяется результатами команды seq 1 100, которая просто выводит целые числа от 1 до 100 (что скажет вам man seq). Замените его чем-то, что поставляет количество образцов, которые у вас есть.
Поместите код в файл (например, test.sh) и запустите его с bash -x test.sh, чтобы просмотреть подробности. Замените seq 1 100 на seq 1 2 для теста, чтобы избежать лавины выхода.
samplenum содержит номер образца, который для этого примера работает от 1 до 100.
sample, в sample${samplenum}.* является просто строкой. Он конкатенируется со значением samplenum и строкой .* для создания шаблона имени файла, например. sample1.* первый раз через петлю for samplenum ..., sample2.* второй раз и т. д.
Вы читали и понимали man bash, man wc, man seq и man bash снова?
Откройте терминал и введите:
sudo apt update
sudo apt upgrade
sudo apt install apt apt-utilslibapt-inst2.0 libapt-pkg5.0 libdrm-amdgpu1libdrm-intel1libdrm-nouveau2libdrm-radeon1libdrm2libgl1-mesa-drilibgl1-mesa-glxlibglapi-mesa
Если какой-либо из этих пакетов необходимо обновить, третья команда обновит устаревшие версии пакетов до текущей версии. В противном случае третья команда ничего не сделает, если все пакеты уже являются последней версией.
Спасибо за предложения. Эта проблема была решена следующим образом: я обнаружил, что на моем компьютере есть приложение для обновления sudo. Сначала нужно было обновление. Затем я запустил это приложение, и сообщение об ошибке исчезло.
Попробуйте это в терминале: sudo apt update
Отображаются любые ошибки?
Если нет, тогда: sudo apt upgrade
Затем попробуйте установить проблемную пакеты:
sudo apt install apt apt-utilslibapt-inst2.0 libapt-pkg5.0 libdrm-amdgpu1libdrm-intel1libdrm-nouveau2libdrm-radeon1libdrm2libgl1-mesa-drilibgl1-mesa-glxlibglapi-mesa
Откройте терминал и введите:
sudo apt update
sudo apt upgrade
sudo apt install apt apt-utilslibapt-inst2.0 libapt-pkg5.0 libdrm-amdgpu1libdrm-intel1libdrm-nouveau2libdrm-radeon1libdrm2libgl1-mesa-drilibgl1-mesa-glxlibglapi-mesa
Если какой-либо из этих пакетов необходимо обновить, третья команда обновит устаревшие версии пакетов до текущей версии. В противном случае третья команда ничего не сделает, если все пакеты уже являются последней версией.
Спасибо за предложения. Эта проблема была решена следующим образом: я обнаружил, что на моем компьютере есть приложение для обновления sudo. Сначала нужно было обновление. Затем я запустил это приложение, и сообщение об ошибке исчезло.
Попробуйте это в терминале: sudo apt update
Отображаются любые ошибки?
Если нет, тогда: sudo apt upgrade
Затем попробуйте установить проблемную пакеты:
sudo apt install apt apt-utilslibapt-inst2.0 libapt-pkg5.0 libdrm-amdgpu1libdrm-intel1libdrm-nouveau2libdrm-radeon1libdrm2libgl1-mesa-drilibgl1-mesa-glxlibglapi-mesa