Конечно. Просто создайте пустую страницу с (например)
echo "" | ps2pdf -sPAPERSIZE=a4 - blank.pdf
и добавьте blank.pdf
к каждому документу, имеющему нечетное количество страниц. Например,
pdftk \
BLANK=blank.pdf \
A=foo1.pdf \
B=foo2.pdf \
C=foo3.pdf \
cat A BLANK B BLANK C \
output bar.pdf
Для очень больших файлов можно использовать естественный порядок отметок времени префикса, чтобы использовать утилиту look
для выполнения быстрого двоичного поиска наибольшего общего префикса строк start
и end
. Затем может следовать awk
/ sed
пост-обработка -для извлечения интересующих строк из вывода look
вbash
export start='"2018-04-05 13:00:00"'
export end='"2018-04-05 13:05:00"'
#determine common prefix ("2018-04-05 13:0 in this example)
common_prefix=$(awk 'BEGIN {
start=ENVIRON["start"]; end=ENVIRON["end"];
len=length(start) > length(end)? length(end): length(start);
i=1;
while (i <= len && substr(ENVIRON["start"], i, 1) == substr(ENVIRON["end"], i, 1)) {
++i
}
print(substr(start, 1, i-1))
}' </dev/null
)
#the -b option to look forces binary search.
#My version of look on Ubuntu needs this flag to be passed,
#some other versions of look perform a binary search by default and do not support a -b.
look -b "$common_prefix" file | awk '$0 ~ "^"ENVIRON["start"],$0 ~ "^"ENVIRON["end"]'
Печатать строки между «2018 -04 -05 13 :00 :00» и «2018 -04 -05 13 :05 :00»
sed -n '/2018-04-05 13:00:00/,/2018-04-05 13:05:00/p' file
или
sed -n /"2018-04-05 13:00:00"/,/"2018-04-05 13:05:00"/p file
Grep для даты начала "2018 -04 -05 13 :00 :00" и вывести следующие 5 строк (=5 минут ), -m1
прекращает поиск после первый матч.
grep -m1 -A5 '2018-04-05 13:00:00' file