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
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?
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
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
Tags text-processing awk sed shell-script cut