Разделить и добавить суффикс и префикс к файловому содержимому

Я пытаюсь сделать 3 вещи. 1 # разделить файл на мелкие куски 2 # при разделении. Мне нужно добавить текст в начало каждого разделенного файла. 3 # Мне нужно добавить текст в конец файла каждого разбитого файла.

У меня есть файл объемом 2 ГБ, по которому мне нужно выполнить операции. Вот небольшой кусок для образца файла, который у меня есть. Пожалуйста, разделите этот файл на 10 строк. Пример необработанного файла, для которого необходимо выполнить операцию: https: //drive.google.com/file/d/0BzQ6rtO2VN95c0YzclhySVZYNDQ/view? Usp = Я хочу, чтобы каждый файл разбился как файл php. Вот пример файла php: https://drive.google.com/file/d/0BzQ6rtO2VN95ZjU1WXpjTElCaEE/view?usp=sharing Мне просто нужно, чтобы новые разделенные файлы были файлами PHP, и они должен выглядеть так:

<?php
$urls = array("tvproduction.agency
","http://tween.agency","http://twelve.agency","http://twenty1.agency
","http://twenty47.agency
","http://twentynine.agency
","http://twentyone.agency
","http://twentysenses.agency
","http://twentysix.agency
","http://twentyten.agency");
?>

Я пробовал split, но он только разбил файл.

1
задан 4 January 2017 в 22:12

1 ответ

Немного сложно получить правильное цитирование (я думаю, потому что split вызывает bash - c ' ... ' под капотом), но последние версии GNU split предоставляют команду --filter, которая должна позволять вам это делать - например, используя sed

split -l 10 --filter='sed -e '\''1i\header text'\'' -e '\''$a\footer text'\'' > $FILE' file

или (еще проще), с printf

split -l 10 --filter='{ printf "header text\n"; cat - ; printf "footer text\n"; } > $FILE' file

Чтобы проиллюстрировать, учитывая file генерируется как

printf '%03d\n' {1..100} > file

, т.е. строки, состоящие из чисел от 001 до 100, затем

split -l 10 --filter='{ 
  printf "header line 1\nheader line 2\n"
  cat - 
  printf "footer line 1\nfooter line 2\n"
  } > $FILE' file

, выдающих выходные файлы

$ ls xa?
xaa  xab  xac  xad  xae  xaf  xag  xah  xai  xaj

, например,

$ cat xad
header line 1
header line 2
031
032
033
034
035
036
037
038
039
040
footer line 1
footer line 2
3
ответ дан 23 May 2018 в 02:44

Другие вопросы по тегам:

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