Extrai e formata dados com 'cut' e 'awk'

1

Eu tenho o arquivo abaixo em txt:

"Firstname","Lastname","Company"
"Alex","Johnson","Alex Corp."
"Baran","Atasoy","Gülerler Ltd."

Gostaria de extrair e formatar dados usando awk e / ou cut e tenho o formato abaixo:

Firstname Lastname
Alex Johnson
Baran Atasoy

Como posso conseguir isso?

    
por Kerim Güleç 26.10.2014 / 19:54

2 respostas

4

Use awk para dividir os campos no , ( -F, ) e substitua o " ( gsub ):

awk -F, '{gsub(/"/,""); print $1,$2}' file
Firstname Lastname
Alex Johnson
Baran Atasoy
    
por 26.10.2014 / 20:11
3

Você pode atribuir um separador de campo multiplay por -F

awk -F[\",] '{print $2,$5}

Mesmo com sed

sed 's/"\|,[^,]\+$//g;s/,/ /'

ou

sed -E 's/"(\w+)","(\w+).*/ /'

Mesmo com tr e cut

tr -s ',"' ' ' | cut -d" " -f2-3

Por fim, mas não o último: apenas bash builtin's

while IFS=, read a b c 
do
  echo "${a//\"/} ${b//\"/}"
done

Ou pode ser mais complicado

while IFS=[,\"] read a b c d f g
do
  echo $b $f
done
    
por 26.10.2014 / 20:16