Удалить мусор из файла - PullRequest
0 голосов
/ 08 ноября 2010

У меня есть CSV-файл с некоторым мусором в начале файла.Как мне от него избавиться?

sh-3.2# more data_combined.csv
84252,1,A ROSEAL

Файл должен начинаться с цифры 842 ...

1 Ответ

1 голос
/ 08 ноября 2010

Для показанных данных это должно сработать (если принять, например, однобайтовый набор кодов, такой как ISO 8859-1, а не UTF-8):

sed '1s/^...//' data_combined.csv

Если это UTF-8, тогда на старте 6 байт мусора.Если sed запускается с языковым стандартом UTF-8, метасимвол '.' совпадает с символом UTF-8 (2 байта каждый в показанном случае), поэтому то же выражение работает нормально.Если sed запускается с SBCS (однобайтовым набором кодов), таким как 8859-1, то вам нужно использовать такой шаблон:

sed '1s/^.\{6\}//' data_combined.csv

На самом деле он будет использовать столько символовнаписать 6 точек;но обобщение, возможно, яснее.


Как правильно сказал Деннис Уильямсон в слишком короткий промежуток времени, пока я спал, чтобы убрать нецифровые цифры из начала первой строки,использование:

sed '1s/^[^0-9]*//' data_combined.csv
...