Сценарій Bash для видалення розривів рядків?


9

Мені потрібен скрипт, який вводить файл і повторює його вміст при видалених рядкових перервах - "слово обгорнуте" так би мовити.

Я спробував:

#!/bin/bash
find $HOME '$1' | while read line; do echo "${line}"; done

але це просто нічого не повертає.

Відповіді:


18

Спробуйте зробити це:

echo $(cat $1)

1
Радий, що я можу допомогти вам знайти один-з-багатьох-способів доїхати, але спробуйте ще більше погуглити Google. Це те , що я отримав як другий результат вискакує , використовуючи ключові слова bash, line, end, remove.
gertvdijk

@gertvdijk минули роки, і це питання, що я отримав, як перший результат вискакує за допомогою подібних ключових слів зараз :)
Хорхе Суарес де Ліс

non-script / cmdline way isecho `cat some_file.ext`
nmz787

7

Я знайшов цю відповідну відповідь у stackoverflow:

/programming/1251999/sed-how-can-i-replace-a-newline-n

Найшвидшим способом, як видається, є використання tr:

tr '\n' ' ' </your/file

або для вашого прикладу:

cat `find $HOME '$1"` | tr '\n' ' '

Щоб дізнатися більше про trкоманді зробити, звичайно, man tr.

Програма an stackoverflow містить способи зробити це за допомогою sed (це був би мій перший вибір, але sed дуже орієнтований на лінійку, і змусити його не інтерпретувати розриви рядків, оскільки роздільники поля є затаємниченими) та спосіб використання читання та bash, близького до вашого початковий підхід.

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