Как добавить текст в начало строки?

Простой способ сделать сложные вещи с FTP не состоит в том, чтобы иметь дело с FTP. Смонтируйте ресурс FTP как файловую систему. FUSE широко доступен в наше время, даже на серверах с ограниченными конфигурациями программного обеспечения. Можно использовать Curlftpfs для монтирования каталогов FTP.

mkdir /net/someftp.example.com
curlftpfs -o user=bob someftp.example.com /net/someftp.example.com

Сохраните пароль FTP в ~/.netrc.

Затем используйте нормальные команды оболочки для копирования файлов с именами, которые Вы хотите. Я не рекомендую эту схему даты микросекунды, поскольку Вы зависите от часов, обновляющих достаточно быстро, который мог быть проблематичным особенно, если часы корректируются, в то время как Ваш сценарий работает. Используйте счетчик вместо этого.

counter=10000
date=$(date +%Y%m%d-%H%M%S)
for x in /net/someftp.example.com/dir/N*.txt; do
  cp -p "$x" "N-$date-${counter#1}.TXT"
  counter=$((counter+1))
done

Когда Вы закончите с каталогом FTP, размонтируйте его с fusermount -u /net/someftp.example.com.

3
29.10.2015, 14:38
2 ответа

Это должно работать с GNU sed:

sed -i '1s/^/string/' file

это отличается от вашего решение в том, чтобы не добавлять новую строку.

test

Перед запуском команды содержимое файла следующее:

some
text
here
already

После выполнения команды:

stringsome
text
here
already
6
27.01.2020, 21:12

Другой способ (аналогичный моему ответу в этом вопросе):

printf 'string' | paste -d'\0' - infile > outfile

или:

printf string | cat - infile > outfile

или:

{ printf string; cat infile; } > outfile
1
27.01.2020, 21:12

Теги

Похожие вопросы