С нотацией GNU Sed n-skip-m
:
$ sed '2~2d' file.txt
86850343
89381968
89714939
90124775
91408453
Я придумал простой пример, вычисляющий хэш SHA256 каждого файла по мере их появления в каталоге. Безвредный и легко проверить, если он ошибся. Вы можете использовать любую другую обработку.
#!/bin/sh
inotifywait -m "$@" -e create | while read dir event file; do
if [ -f "${dir}${file}" ]; then
sha256sum "${dir}${file}"
fi
done
Есть несколько проблем с этим, не все из них легко решить.
\0
-единственный символ, который не может появляться в имени файла -в качестве разделителя, но я не смог заставить его работать с $IFS
и опцией --format
. Возможно, было бы лучше не использовать -m
, а повторно вызывать inotifywait, чтобы вы знали, что один вывод = один файл. Но тогда вы пропустите много событий! [ -f ${dir}${file} ]
, затем он удалит его и вместо этого создаст символическую ссылку, затем ваш скрипт сделает свое дело с произвольным файлом. Так что даже если бы у меня заработала штука \0
, это не имело бы значения. &
:)close_write
или создав файлы в другом месте и переместив их в отслеживаемый каталог, когда они будут готовы. Я думаю, что это одна из тех задач, которые не следует выполнять в сценарии оболочки. Здесь должна быть какая-то синхронизация между читателем и писателем, и может быть или не быть граница доверия.
Использовать программную ссылку ln -s blabla_3300.dat.next
.
Скажите вашему сценарию читать .next
, затем rm.next;ln -s blabla3400.dat.next
.