Я делаю попытку 3 вещей.
1# разделяет файл на маленькие блоки
2# при разделении я должен добавить некоторый текст к запуску каждого файла разделения. 3# я должен добавить некоторый текст в конец файла каждого файла разделения.
У меня есть файл 2 ГБ, на которых я должен выполнить операции. Вот маленький блок для образца файла, который я имею. Разделите этот файл согласно 10 строкам каждый.
Пример необработанного файла, на котором операция должна быть done:https://drive.google.com/file/d/0BzQ6rtO2VN95c0YzclhySVZYNDQ/view? usp=sharing
Я хочу сделать каждый файл разделения как 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_1, split_2, split_3
и т.д.
Файл, как:
aap
noot
mies
wim
zus
jet
teun
vuur
gijs
aardappel
pinda
aap
noot
mies
wim
...
будет разделен, как:
something_before
aap
noot
mies
wim
zus
jet
teun
vuur
gijs
aardappel
something_after
и т.д.
#!/usr/bin/env python3
# --- set the file, the prefix , suffix and chunksize below
f = "/home/jacob/Bureaublad/test"
prefix = "something_before"
suffix = "something_after"
chunksize = 10
# --- don't change anything below
n = 1
nfile = 1
with open(f) as read:
for l in read:
if (n-1) % chunksize == 0:
s = prefix+"\n"; a = ""
elif n%chunksize == 0:
a = suffix; s = ""
else:
a = ""; s = ""
open("split_"+str(nfile), "a+").write(s+l+a)
if n%chunksize == 0:
nfile += 1
n += 1
# add the suffix to the last file if it is "incomplete"
last = suffix if a == "" else ""
open("split_"+str(nfile), "a+").write(last)
split_chunks.py
В главном разделе сценария, установленного путь в Ваш большой файл, префикс, суффикс и chunksize (количество строк для разделения на)
# --- set the file, the prefix , suffix and chunksize below
f = "/home/jacob/Bureaublad/test"
prefix = "something_before"
suffix = "something_after"
chunksize = 10
Запустите скрипт с командой:
python3 /path/to/split_chunks.py
... будет следовать, должен спать :)
Немного сложно получить правильное цитирование (я думаю , потому что 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