Supondo utilitários GNU e um arquivo de dados data
,
-
grep -Po '(?<=\|a).*(?=\|b)' data
Some text, letters or numbers. | Some other text letters or numbers
-
sed -r -e 's/^.?*\|a//' -e 's/\|[a-z]?//g' data
Some text, letters or numbers. Some other text letters or numbers some other part of text some other letters or numbers Title without any other bars
Altere o |a
e o |b
para |c
e |d
, etc., conforme necessário.
Observe que nenhum desses remove o espaço em branco ao redor dos marcadores |x
, portanto, o texto tem um espaço à esquerda e um espaço à direita (nenhum dos quais pode ser mostrado aqui). Se você quiser que seja removido também, é necessário incluí-lo como parte do padrão:
grep -Po '(?<=\|a ).*(?= \|b)' data
sed -r -e 's/^.?*\|a ?//' -e 's/ ?\|([a-z] ?)?//g' data
Como escrito aqui, o comando sed
unirá as subseções. Se você quiser que eles tenham um espaço entre eles, apenas altere o //
no final para / /
.