perl -F'=|\|' -pe '$_ = join "|", grep { $k++ % 2 } @F'
sed -e 's/[^=|]*=//g'
Eu tenho um arquivo e seu conteúdo se parece com:
abc=123|qwer=432|reiw=2344|xyz=123 445|tyu=23 rows
Eu tentei usar tr
e sed
, mas precisarei usar awk
A saída desejada deve ser semelhante:
file2:
123|432|2344|123 445|23 rows
perl -F'=|\|' -pe '$_ = join "|", grep { $k++ % 2 } @F'
sed -e 's/[^=|]*=//g'
Apenas tentei com este sed
:
sed 's/[a-z,=]//g' | sed 's/$/rows/'
Ou seja, remover qualquer caractere entre "a" e "z" e também o "=". Depois disso, acrescente "linhas" no final.
Isso só foi testado com sua linha de exemplo. Se houver outras variantes em seu arquivo, talvez não funcione.
Outra maneira com awk
tomando todos os valores entre "=" e "|":
awk '$0=$2' FS=\= RS='|' ORS="|" | head -1
Eu tive que canalizar head
porque foi impresso um final "|" caractere em uma segunda linha após a saída esperada.
Tags awk