как удалить двойные кавычки в csv [дубликат]

gpg2 -se --passphrase yourpassword --batch --yes -r user@example.com filename
6
19.01.2017, 05:47
4 ответа

Используйте функцию gsub () для глобальной подстановки

$ awk '{gsub(/\"/,"")};1' input.csv                    
1,2,3,4,9
1,2,3,6,24
1,2,6,8,28
1,2,4,6,30

Чтобы отправить вывод в новый файл, используйте оболочку > operator:

awk '{gsub(/\"/,"")};1' input.csv > output.csv

Также можно использовать подход разделения на массивы, хотя в этом нет необходимости, но вы можете использовать его так:

$ awk '{split($0,a,"\""); print a[2]}' input.cvs       
1,2,3,4,9
1,2,3,6,24
1,2,6,8,28
1,2,4,6,30

Обратите внимание, что в этом конкретном вопросе общий шаблон заключается в том, что кавычки находятся в начале и конце строка, что означает, что мы также можем рассматривать это как разделитель полей, где поле 1 имеет значение NULL, поле 2 равно 1,2,3,4 , а поле 3 также равно NULL. Таким образом, мы можем сделать:

awk -F '\"' '{print $2}' input.csv

И мы также можем извлечь подстроку из всей строки:

awk '{print substr($0,2,length($0)-2)}' quoted.csv

Говоря об удалении первого и последнего символов, есть целая статья в stackoverflow об этом с другими инструментами, такими как как sed и оболочка POSIX.

6
27.01.2020, 20:21

Вы можете использовать эту команду

awk '{gsub("\"",RS);print}' a.csv >  b.csv
1
27.01.2020, 20:21

Простейший подход:

tr -d '"' <a.csv >b.csv
10
27.01.2020, 20:21

Другое решение с sed :

sed -e 's/"//g' a.csv > b.csv
5
27.01.2020, 20:21

Теги

Похожие вопросы