Вы можете использовать
split -l lines_per_file --additional-suffix=.xml source.xml part
Это прочитает файл Source.xml
и разделить его в куски Lines_per_file
. Результат будет записан в серию файлов Partaa.xml
, partab.xml
, partac.xml
, ...
Если вы хотите Используйте другое количество символов суффикса, вы можете использовать опцию -A
, чтобы указать номер, например. - 1
Называть файлы PAPTA.XML
, PARTB.XML
, partc.xml
, ...
, если Вы хотите разделить куски размеров файла вместо подсчета строки, вы можете использовать -B Size_in_Bytes
вместо -L Lines_Per_file
.
Обратите внимание, что полученные файлы, скорее всего, будут недействительными файлами XML (если вы не получите один файл взамен, то есть. Ваш вход был слишком много строк / байтов, чтобы получить разделение).
> awk -v RS=$'\n\n' -v FS=$'\n' -v ORS=$'\n\n' '$2 ~ /123$/ {print}' abc.txt
abc 123
abcd 123
abcde 12345
Это стандартная процедура для GNU sed
sed '/abc 123/{:1;$!{N;/\n$/!b1}};/\babcd 123\b/d' abc.txt
Or
sed '/^$/!{:1;$!{N;/\n$/!b1}};/\babcd 123\b/d' abc.txt
, если вы ориентируетесь на пустую строку, а не на 1-ю (abc 123
) в блоке