Следующий шаг решил вашу проблему
Шаг 1: создайте каталог данных (в соответствии с переменной PGROOT, установленной ранее в конфигурационном файле)
sudo mkdir /var/lib/postgres/data
Шаг 2: установите права собственности на /var/lib/postgres/data пользователю 'postgres'
chown postgres /var/lib/postgres/data
Шаг 3: От имени пользователя 'postgres' запустите базу данных.
sudo -i -u postgres
initdb -D '/var/lib/postgres/data'
Шаг 4: Запустите службу от имени root
Упрощенно:
while read -r one
do
read -r two &&
read -r three &&
read -r four &&
read -r five &&
read -r six &&
read -r seven &&
read -r eight &&
read -r nine &&
read -r ten &&
printf "%s\n" "$one" "$two" "$three" "$four" "$five" "$six" "$seven" "$eight" "$nine" "$ten"
## or whatever you want to do to process those lines
echo END OF SECTION
done < input-file
Это может быть "легко" расширено до двадцати строк за раз.
Это сработает:
while read line1 && [do something with $line1]
do
read line2 && [do something with $line2]
read line3 && [do something with $line3]
[…]
done < file.txt
Однако очень странно иметь ограничение на чтение ровно N строк, если ваша структура данных не является фиксированным числом строк. Обычно то, что делается при чтении нескольких строк за раз, представляет собой своего рода параллелизм, который лучше достигается с помощью либо xargs
(для обработки нескольких переменных $lineN
в одной команде) , parallel
(чтобы использовать рабочую модель для обработки линий как можно скорее) или их комбинацию.
Вы можете сделать следующее, чтобы прочитать 5 строк:
N=5; # Number of lines to process together (YMMV)
cat input_file |
while IFS= read -r v1; do
eof=
for i in $(seq 2 "$N"); do
IFS= read -r "v$i" || { unset -v eof; break; }
done
${eof+:} break
echo "The 5 lines read in are: $v1 $v2 $v3 $v4 $v5"
done
Мы можем разбить
и отфильтровать файл...
split -l 20 --filter='command' input_file
Пример: разделить на части по 20 строк и выбрать одну случайную строку из каждой части (shuf -n 1
)
split -l 20 --filter='shuf -n 1' input_file
Команда sama (split) может использоваться для создания файла для каждого фрагмента:
split -l 20 input-file input-file-chunk-
создание входного-файла-чанка-aa
nput-файла-чанка-ab
и т. д.