на CentOS7:
'su -postgres -c "psql"'
и вы должны получить подтверждение того, что postgres действительно остановился:
'psql :не удалось подключиться к серверу :Нет такого файла или каталога. Является сервер работает локально и принимает соединения через сокет домена Unix "/var/run/postgresql/.s.PGSQL.5432"?'
Цикл по файлам тела, используйте cat
для конкатенации файлов заголовка и нижнего колонтитула с каждым файлом тела, вывод с новым именем:
for body in file*.txt; do
cat intro.txt "$body" outro.txt >"${body%.txt}-complete.txt"
done
Это записывает завершенные файлы с такими именами, как file1-complete.txt
, file2-complete.txt
. Имя выходного файла создается путем удаления известного суффикса имени файла .txt
из имени в $body
и добавления -complete.txt
в конце.
Обратите внимание, что любые уже существующие выходные файлы перезаписываются.
Я предполагаю, что имена ваших "мясных" файлов (, которые вы назвали им с file1.txt
по file3.txt
), таковы, что они могут быть покрыты выражением glob, таким как file*.txt
.
В этом случае должно работать следующее (Я предполагаю, что здесь строковые операции в стиле Bash -, но адаптация к другим оболочкам должна быть тривиальной):
for f in file*.txt; do
out="${f/%.txt/_complete.txt}";
cat intro.txt "$f" outro.txt > "$out";
done
Это зациклит все файлы, соответствующие выражению glob file*.txt
, и создаст новое имя файла, сохраненное в переменной оболочки $out
, заменив суффикс .txt
на _complete.txt
(, чтобы file1.txt
стало file1_complete.txt
). Затем cat
вступление, текущий входной файл и заключение в новый файл.
for file in /my/directory/of/files/*; do
cat /mydir1/prologue.txt "$file" epilogue.txt >>my_file_list
done