У меня много данных, разделенных табуляцией, и это означает, что при импорте я получаю много столбцов (слишком много для Google Drive и OpenOffice).

Я думаю, что мне нужно сделать, это найти и заменить все вкладки с переносами строк (может быть неправильно).

* РЕДАКТИРОВАТЬ - я в конечном итоге выяснить это, используя другой метод. Спасибо всем за вашу помощь. :)

3 ответа3

2

В OS X вы должны использовать $'' для вставки \t или \n и экранирования \n в шаблоне замены.

echo $'1\t2\n3\t4' | sed $'s/\t/\\\n/g'

Но разве переводы строк не разделяют строки в файлах TSV? Вы также можете использовать TextEdit для замены вкладок другими символами, такими как точки с запятой.

0

Вы можете попробовать использовать регулярное выражение:

sed 's/\t/\n/' input.txt > output.txt

Это заменит вкладки \t символами новой строки \n .

0

Чтобы расширить ответ root, на самом деле вам может понадобиться добавить /g в конце, чтобы выполнить все действия.

Вы также можете записать его в тот же файл с флагом автоматического резервного копирования.

sed -i.orig 's/\t/\n/g' file.txt

Окончание /g приведет к тому, что оно будет попадать в каждый случай вместо первого в строке (если вам это нужно).

-I.orig записывает изменения в тот же файл после создания резервной копии оригинала (в данном случае file.txt.orig). Это просто вопрос для меня, а не необходимость переименовывать оригинал и новый, чтобы занять его место.

Обновить

Я приложил скриншот, чтобы показать, что он работает для меня ... Вы уверены, что файл выделен вкладкой?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .