Com GNU grep
, que suporta a opção -o
, para imprimir somente strings correspondentes, cada uma em sua própria linha
$ grep -oE '\b35=[^,]+' ip.csv
35=A
35=BCD
35=EF
35=G
-
\b
é limite de palavras, de forma que900035
não corresponderá a -
[^,]+
para corresponder a um ou mais não,
caracteres - assume que os valores não contêm
,
Com awk
$ awk -F, '{ for(i=1;i<=NF;i++){if($i~/^35=/) print $i} }' ip.csv
35=A
35=BCD
35=EF
35=G
-
-F,
set,
como separador de campos de entrada -
for(i=1;i<=NF;i++)
iterar em todos os campos -
if($i~/^35=/)
se o campo começar com35=
-
print $i
imprime esse campo
-
Similar com perl
perl -F, -lane 'foreach (@F){print if /^35=/}' ip.csv