Как запятая-демилит выход из среза?

0

Пока у меня есть это:

grep -B 36 'pattern1' Mapper.1.Configuration.MapRules | grep "pattern2" | cut -d'"' -f2

которые дают мне список значений, разделенных новой строкой, которые мне нужны. Я мог бы поместить это в файл, а затем выполнить поиск и заменить все новые строки запятыми.

Но я предполагаю (нет, надеюсь!) Есть способ сделать это в командной строке?

Рами
источник
почему бы не использовать grepили awk?
Алекс

Ответы:

1

Быстрый поиск показывает следующий ответ из юниверса Stack Exchange, который должен быть применим:

<command> | tr "\\n" ","

https://stackoverflow.com/questions/2764051/joining-multiple-lines-into-one-with-bash

USD Мэтт
источник
Спасибо за это. У меня были проблемы с поиском подходящего текста для поиска. Кажется, это работает, за исключением того, что он также принимает следующую командную строку в качестве ввода ... кажется. то есть последнее значение имеет запятую после него, но к нему также добавляется «root @ ip-address: / current-dir». Это большое преимущество, хотя. я посмотрю в tr.
Рами
У него нет следующего приглашения в качестве ввода. \ N в самом конце вывода заменяется запятой, поэтому подсказка, напечатанная вашим терминалом после завершения команды, не переходит на новую строку.
USD Мэтт
ах. конечно. Я буду продолжать играть с этим, чтобы получить то, что мне нужно.
Рами
Есть несколько дополнительных битов в информации о стековом потоке. Вы также можете попробовать добавить | sed 's/,$//'. Это удаляет последнюю запятую и добавляет новую строку для меня, хотя я использую FreeBSD, поэтому ваш вывод может немного отличаться от моего.
USD Мэтт
Спасибо за чаевые. та команда sed не сработала для меня. Я только что удалил последний символ строки следующим образом: ${i%?}где я храню результаты моего конвейера (который заканчивается командой tr)
Ramy