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