Bash скрипт для удаления разрывов строк?

9

Мне нужен скрипт, который вводит файл и выводит на экран его содержимое с удаленными переносами строк - так сказать, «завернутые в слова».

Я пробовал:

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

но это просто ничего не возвращает.

southpointingchariot
источник

Ответы:

18

Попробуйте сделать это:

echo $(cat $1)
gertvdijk
источник
1
Рад, что я мог бы помочь вам найти один из многих способов попасть туда, но в следующий раз попробуйте немного погуглить. Это то , что я получил как второй результат выскакивает , используя ключевые слова bash, line, end, remove.
gertvdijk
@gertvdijk прошли годы, и этот вопрос, который я получил в качестве первого результата, всплыл с использованием похожих ключевых слов сейчас :)
Хорхе Суарес де Лис
не сценарий / cmdline путьecho `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.

В способе stackoverflow есть способы сделать это с помощью sed (это был бы мой первый выбор, но sed очень ориентирован на строки и заставляет его не интерпретировать переносы строк, так как разделители полей неясны) и способ использования read и bash, близкий к вашему. первоначальный подход.

roadmr
источник