1

Как я могу разбить текстовый файл на основе первого совпадения шаблона? Файл нужно только разбить на 2 части: одна содержит все до строки, соответствующей шаблону, другая содержит соответствие строки и все после. Строки после него также будут содержать образец снова, но это не должно вызывать множественные части.

3 ответа3

0

Пытаться:

sed '/pattern/q' file.txt | grep -v "pattern" > part1.txt
sed -n `sed -n '/pattern/=' file.txt | head -1`',$p' file.txt > part2.txt

Где file.txt - ваш файл

0

Как насчет

awk -F'+' '{ print $1 }' < abc > firstpart.txt
awk -F'+' '{ print $1 }' < abc > secondpart.txt
0

Я не уверен, что понял последнее предложение:

Это должно скопировать всю строку вашего файла до исключенной строки шаблона

head -n `grep -e "YOUR PATTERN" -n YOURFILE | head -1 | awk -F ":" '{print $1-1}'` YOURFILE > FIRST_FILE_OUTPUT.txt   

это должно скопировать от линии образца, включенной до конца.

tail -n `grep -e "YOUR PATTERN" -n YOURFILE | head -1 | awk -F ":" '{print "+"$1}'` YOURFILE > SECOND_FILE_OUTPUT.txt

где YOURFILE использует входной файл для разделения YOUR PATTERN - это "ключ", который вы хотите найти в вашем файле. FIRST_FILE_OUTPUT.txt и SECOND_FILE_OUTPUT.txt - это выходной файл, в котором вы найдете первую и вторую часть вашего файла.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .