Найшвидший і найважливіший спосіб замінити "\ r \ n" на "\ n" у файлі?


11

Я вважаю tr, що це більш основний метод, і, ймовірно, більш швидкий спосіб заміни речей у заданому файлі.

Однак tr може замінити лише рівну кількість символів. сенс ...

2 символи можна замінити лише двома символами, що означає заміну

\r\nз не \nйдеться про питання черезtr

наступний найкращий варіант sed?

є СЕД найбільш ядра і швидким способом заміни \r\nз \nв файлі , з огляду на відсутність можливостей в тре?

хотіли б прикладу, якщо це можливо.


Що саме означає "Most Core"?
Кіт Томпсон

Відповіді:


23

З sed, ви можете:

sed 's/\r$//'

Так само, як і для цього tr, вам потрібно лише видалити \r:

tr -d '\r'

хоча це видалить усі екземпляри \r, за якими не слід \n.


2
Ці два не тотожні. Перший із замініть '\ r \ n' на '\ n' (ефективно), але другий видалить усі '\ r', де б вони не з’явилися. Нечасто повернення каретки з’являється у текстовому файлі, окрім кінця рядка, але це може статися.
Ams

4

АБО використовуйте dos2unix

наприклад:

$ echo -ne "1\r\n2" |  od -A n -t x1
 31 0d 0a 32
$ echo -ne "1\r\n2" | dos2unix | od -A n -t x1
 31 0a 32

ми можемо побачити заміну \r\nна\n


Це не програма зі списку ОП, але, на мою думку, найчистіший спосіб виконати цю роботу. Я особисто використовую його щоразу, коли мені потрібно таке перетворення.
рüффп
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.