Я пытаюсь сделать 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, но он только разбил файл.
Немного сложно получить правильное цитирование (я думаю, потому что 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