У мене є .csv зі спеціальними символами, які руйнують імпорт, що потрібно зробити.
У VIM я відкрив для видалення спеціальні символи з:
:%s/\r//g
Це видаляє ^M
з деяких моїх ламаних ліній.
Але я хотів би або написати це в bash скрипт, або в мій ruby скрипт. Так що мені було цікаво, якщо є спосіб, я можу виконати цей спеціальний пошук символів і замінити в Bash або Ruby.
Шукаючи ^M
не працює. А також ви не бачите цього символу в жодному текстовому редакторі, окрім VIM.
Ах, чи знаєте ви, який синтаксис використовувати? @AFH
—
Trip
dos2unix WinFile.txt LinFile.txt
. Альтернативно, використовуйте sed -i 's/\r$//' WinFile.txt
якщо ви хочете уникнути робочого файлу.
@AHH Ах, так,
—
Trip
sed
Команда, безумовно, те, що я шукаю. Але використовуючи -i
опція повертає: sed: 1: "/Users/mycomputer/Des ...": invalid command code e
Котрий я почув засіб тільки prepending a -e
. Так проходить sed -i -e 's/\r$//' ~/Desktop/my_file.csv
, але спеціальний символ фактично не видалено. Отже, ніяких змін не відбулося.
Моя команда вище працює на Ubuntu. Інші розподіли можуть мати різні значення за замовчуванням для
—
AFH
sed
- За замовчуванням Ubuntu - Основні регулярні вирази, які включають обробку \r
і пов'язані з ними послідовності. Тільки проходить думка: ваш файл не тільки для читання?
^M
є використанняdos2unix
. У скрипті потрібно використовувати додатковий робочий файл.