Que tal
awk -F'+' '{ print $1 }' < abc > firstpart.txt
awk -F'+' '{ print $1 }' < abc > secondpart.txt
Como posso dividir um arquivo de texto com base na primeira correspondência de um padrão? O arquivo só precisa ser dividido em duas partes, uma contendo tudo antes da linha correspondente ao padrão, uma contendo a correspondência de linhas e tudo mais depois. As linhas depois dela também conterão o padrão novamente, mas isso não deve acionar várias partes.
Que tal
awk -F'+' '{ print $1 }' < abc > firstpart.txt
awk -F'+' '{ print $1 }' < abc > secondpart.txt
Tente:
sed '/pattern/q' file.txt | grep -v "pattern" > part1.txt
sed -n 'sed -n '/pattern/=' file.txt | head -1'',$p' file.txt > part2.txt
Onde file.txt
- seu arquivo
Não tenho certeza se entendi a última frase, no entanto:
Isso deve copiar toda a linha do seu arquivo até que a linha do padrão seja excluída
head -n 'grep -e "YOUR PATTERN" -n YOURFILE | head -1 | awk -F ":" '{print $1-1}'' YOURFILE > FIRST_FILE_OUTPUT.txt
isso deve ser copiado da linha de padrão incluída até o final.
tail -n 'grep -e "YOUR PATTERN" -n YOURFILE | head -1 | awk -F ":" '{print "+"$1}'' YOURFILE > SECOND_FILE_OUTPUT.txt
onde YOURFILE nos o arquivo de entrada para dividir SEU PADRÃO é a "chave" que você deseja pesquisar em seu arquivo. FIRST_FILE_OUTPUT.txt e SECOND_FILE_OUTPUT.txt são o arquivo de saída no qual você encontrará a primeira e a segunda parte do seu arquivo.