Я бы использовалperl
:
perl -pi -e 's/^Subject: \K/sprintf("%05d ", ++$n)/e' File*
Добавит увеличивающееся число (0, дополненное до ширины 5 )после каждого вхождения Subject:
в начале строки.
Только для первого случая:
perl -pi -e '
unless ($found_already) {
$found_already = 1 if s/^Subject: \K/sprintf("%05d ", ++$n)/e
}
$found_already = 0 if eof' File*
Для добавления Subject: <increasing-number>
к строке 5 каждого файла:
perl -pi -e '$_ = sprintf("Subject: %05d %s", ++$n, $_) if $. == 5;
close ARGV if eof' File*
Обратите внимание, что файлы передаются perl в порядке, определяемом расширением glob оболочки. В большинстве оболочек это лексический порядок. Если имена файлов пронумерованы без заполнения, это означает, что File10
будет стоять перед File2
. В оболочке zsh
вы можете заменить File*
на File*(n)
для численной сортировки списка или File*(Om)
для сортировки по возрасту файла (от самого старого к самому младшему ).
У меня была такая же проблема на Scientific -Linux 6.5 с Fujitsu Scansnap и нормальными -бэкендами 1.0.24. Я скомпилировал 1.0.25 (, т.е. не самую последнюю, но у меня была только что-то вроде ), и это решило проблему. Никаких специальных переменных среды не требуется.
Все остальные приемы, рекомендованные здесь и в других местах (замена сканера на другой образец того же типа, использование другого USB-кабеля, использование другого USB-разъема на компьютере )не увенчались успехом.