Как разделить численные значения от идентификаторов

Для ответа на вопрос, я мог рекомендовать использование Списков управления доступом ACLs

3
11.02.2018, 04:51
3 ответа

Можно использовать как это:

grep "pattern" file.txt | awk '{printf "%s ", $3}'

В зависимости от того, с чем Вы делаете grep, но необходимо рассмотреть использование awk для того, чтобы схватить себя:

awk '/pattern/{printf "%s ", $3}' file.txt

Иначе путем использования в своих интересах слова-spliting :

echo $(awk '/pattern/{print $3}' file.txt)

Редактирование: у Меня есть более забавный способ присоединиться к значениям:

awk '/pattern/{print $3}' file.txt | paste -sd " " -
3
27.01.2020, 21:13
  • 1
    Спасибо, там некоторый способ, которым я могу заставить это печатать без новых строк хотя? –  sj755 16.02.2013, 03:00
  • 2
    Посмотрите мой отредактированный –  Gilles Quenot 16.02.2013, 03:01
  • 3
    @sj755 сообщения, Если этот ответ решил Вашу проблему, не забудьте отмечать его, как принято и upvote он вместо того, чтобы добавить спасибо комментарий. Это - способ, которым благодарность выражена на сайтах SE. –  terdon♦ 16.02.2013, 03:07
  • 4
    @terdon, Хорошо знающий, я ожидаю, чтобы быть позволенным пометить ответ. А-ч –  sj755 16.02.2013, 03:10

Разделите все до первого = и последующий пробел, преобразуйте новые строки в пробелы и распечатайте заключительную новую строку:

… | sed 's/^[^=]*= *//' | tr '\n' ' '; echo
3
27.01.2020, 21:13

Как насчет просто

cut -d= -f2 /tmp/file | xargs printf "%s "

Это работает потому что:

  1. Встроенное "printf" желание оболочки "повторится", если это получит больше аргументов, чем параметры, указанные в выходной строке
  2. xargs повернется, строки от входа в слова на командной строке передали printf
  3. сокращение будет использовать = в качестве разделителя и поставлять только, что следует за ним
  4. Конечно, строка printf отобразит вывод и так как никакая явная новая строка не добавляется, добавьте каждого в конец предыдущего.
1
27.01.2020, 21:13

Теги

Похожие вопросы