Remove todas as letras maiúsculas de uma coluna específica em um arquivo CSV

1

Estou a ter um ficheiro CSV com mais de 3000 linhas no seguinte formato:

R1C1, ABC123abc, R1C3
R2C1, DEFG456defg, R2C3
R3C1, HIJKL789hijkl, R3C3

Eu preciso remover todas as letras maiúsculas da segunda coluna do arquivo para que ele leia o seguinte:

R1C1, 123abc, R1C3
R2C1, 456defg, R2C3
R3C1, 789hijkl, R3C3

Como isso pode ser feito?

    
por Mandar Shinde 01.08.2014 / 05:10

3 respostas

2

Você pode usar awk :

$ awk -F',' '{sub(/[[:upper:]]+/,"",$2)}1' OFS=',' file
R1C1, 123abc, R1C3
R2C1, 456defg, R2C3
R3C1, 789hijkl, R3C3
    
por 01.08.2014 / 05:13
2

se o segundo campo tiver maiúsculas espalhadas,

awk -F ',' '{gsub(/[[:upper:]]/, X, $2)}1' OFS=, file
    
por 01.08.2014 / 06:09
-1

Bash em combinação com sed :

#!/bin/bash
cnt=0;
while IFS=, read a b c; 
do 
 echo -n $a ; cnt=$[cnt+1]; 
 sed  -e 's/[^,]*,\([^,]*\).*//' file | 
 sed  -e 's/\([[:upper:]]\)//g'| 
 sed  -e  $cnt'q;d'|
 tr '\n' ' ' ;
 echo  $c; 
done  < file

produz:

R1C1 123abc R1C3
R2C1 456defg R2C3
R3C1 789hijkl R3C3
    
por 01.08.2014 / 09:41