Если я запустил команду cat file | grep pattern
, я получаю много строк вывода. Как вы объединяете все строки в одну строку, эффективно заменяя каждый "\n"
"\" "
(заканчивающийся "
, за которым следует пробел)?Как объединить несколько строк вывода в одну строку?
cat file | grep pattern | xargs sed s/\n/ /g
не работает для меня.
возможно дубликат [SED: Как заменить символ новой строки (\ п)] (http://stackoverflow.com/questions/1251999/sed-how-can-i-replace-a- newline-n) – ruakh
Кстати: (1) вам нужно поставить свой скрипт 'sed' в одинарные кавычки, чтобы Bash не возился с ним (поскольку' sed s/\ n// g' вызывает 'sed' с двумя аргументами, а именно 's/n /' и '/ g'); (2), так как вы хотите вывести файл 'cat ' grep pattern' будет * input * для 'sed', а не * аргументов * для' sed', вам нужно устранить 'xargs'; и (3) здесь нет необходимости в 'cat', так как' grep' может принимать имя файла в качестве второго аргумента. Итак, вы должны были попробовать файл grep pattern | sed 's/\ n// g''. (В этом случае это не сработало бы по причинам, указанным в приведенной выше ссылке, но теперь вы знаете на будущее.) – ruakh
похоже на «http://stackoverflow.com/questions/2764051/how-to-join- multiple-lines-of-file-names-in-one-with-custom-delimiter " –