Как объединить несколько строк вывода в одну строку? [дубликат]
этот вопрос уже есть ответ здесь:
Как объединить все строки из файла в bash?
8 ответов
если я выполню команду cat file | grep pattern, Я получаю много строк вывода. Как вы объединяете все строки в одну строку, эффективно заменяя каждую "n" С "" " (конец с " затем космос)?
cat file | grep pattern | xargs sed s/n/ /g
это не работает на меня.
7 ответов:
использовать
tr '\n' ' 'перевести все символы новой строки с пробелами:$ grep pattern file | tr '\n' ' 'Примечание:
grepчитает файлыcatобъединяет файлы. Не надоcat file | grep!Edit:
trможет обрабатывать только односимвольные переводы. Вы могли бы использоватьawkчтобы изменить разделитель выходных записей, например:$ grep pattern file | awk '{print}' ORS='" 'это бы преобразило:
one two threeto:
one" two" three"
вывод трубопровода на
xargsсцепляет каждую строку вывода в одну строку с пробелами:grep pattern file | xargsили любая команда, например.
ls | xargs. Ограничение по умолчаниюxargsвыход ~4096 символов, но может быть увеличен, например.xargs -s 8192.
в bash Echo без кавычек удалить символы возврата каретки, табуляции и множественные пробелы
echo $(cat file)
это может быть то, что вы хотите
cat file | grep pattern | paste -sd' 'что касается вашего редактирования, я не уверен, что это значит, возможно, это?
cat file | grep pattern | paste -sd'~' | sed -e 's/~/" "/g'(предполагается, что
~не происходитfile)
вот метод, с помощью
exредактор:
Join все линии и print к стандартному выходу:
$ ex +%j +%p -scq! fileJoin все строки на месте (в файле):
$ ex +%j -scwq fileПримечание: это будет конкатенация всех строк внутри файла it-self!
вероятно, лучший способ сделать это-использовать инструмент "awk", который будет генерировать вывод в одну строку
$ awk ' /pattern/ {print}' ORS=' ' /path/to/fileОн объединит все строки в одну с разделителем пробелов
это пример, который производит вывод, разделенный запятыми. Вы можете заменить запятую любым разделителем, который вам нужен.
cat <<EOD | xargs | sed 's/ /,/g' > 1 > 2 > 3 > 4 > 5 > EODвыдает:
1,2,3,4,5
Comments