Создать скрипт bash, который принимает входные данные из канала

aptitude имеет довольно хороший способ справиться с этим:

$ aptitude why bash
i   foomatic-filters PreDepends bash (>= 2.05)

По умолчанию в нем перечислены только самые «самые строгие, самые сильные, самые короткие» причины, но вы можете использовать aptitude -v why для вывести все, что он найдет.

1
задан 10 August 2012 в 02:17

1 ответ

alias csl="awk '{print "\047"$1"\047"}' | paste -d, -s"

, тогда просто cat whatever | csl

Это похоже на работу, но на самом деле это не так, по причинам, указанным в комментариях ниже. См. Их для реальных, хороших рабочих решений:)

Кстати, это не специфично для ubuntu, поэтому не стесняйтесь публиковать сообщения на stackoverflow.com, если мой ответ не работает для вас. [!d2 ]

3
ответ дан 25 May 2018 в 07:44
  • 1
    Не работает для меня. Вывод команды awk "20007" для каждой строки. – frankadelic 10 August 2012 в 03:10
  • 2
    Это работает .... alias csl='awk '\''{print "\047"$1"\047"}'\'' | paste -d, -s' – frankadelic 10 August 2012 в 03:15
  • 3
    @frankadelic, вы также можете использовать функцию: csl() { awk '{print "\047" $1 "\047"}' - | paste -d, -s; } - не нужно возиться с большим количеством котировок и обратных косых черт. Я явно помещаю аргумент - для awk, чтобы обозначить, что он читает из stdin. – glenn jackman 10 August 2012 в 05:36
  • 4
    @roadmr, сложность заключается в том, что вы используете двойные кавычки как "внешние" кавычки, поэтому $1 становится замененным в то время, когда вы определяете псевдоним. – glenn jackman 10 August 2012 в 05:37

Другие вопросы по тегам:

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