как убрать пустые места в csv в unix - PullRequest
4 голосов
/ 15 декабря 2011

Привет. Я хотел бы использовать awk или sed для удаления пробелов перед запятой в файле CSV .Пример входного файла:

"abcd"  ,"test 123"

Выходной файл:

"abcd","test 123"

Удалять только пробелы перед запятой, но не между словами.ищу функцию обрезки в unix.Пожалуйста помоги.Большое спасибо.

Ответы [ 2 ]

7 голосов
/ 15 декабря 2011

Это легко сделать с помощью sed:

sed 's/ *,/,/' csv-file

Это говорит sed, что нужно удалять последовательности пробельных символов (любой длины) перед запятыми.

Примечания:

  1. Здесь предполагается, что запятые недопустимы в полях (т. Е. "Test, 123" недопустимо).
  2. Как вы и просили, это удаляет пробелы только перед запятыми. если вы хотите удалить пробелы после запятой:

    sed 's/ *, */,/' csv-file

1 голос
/ 15 декабря 2011

Это должно работать:

cp file1 file2
perl -pi -e 's/" ,"/","/g' file2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...