Как `cat` имя файла возвращается` which`?

Я ответил на этот вопрос, но понимаю, что это может быть лучше.

Как я могу преобразовать:

$ which gjslint
$ cat /usr/local/bin/gjslint

В нечто подобное:

$ cat < which gjslint
-bash: which: No such file or directory

.. так что выходной путь + имя файла из which передается на cat, который затем делает это (то есть печатает содержимое файла на экране).

1
задан 23 May 2017 в 15:39

1 ответ

Что у вас есть в связанном вопросе:

$ cat $(which gjslint) | grep [0-9] --color=always

Что вы можете сделать:

$ grep '[0-9]' --color=always "$(which gjslint)"

Есть несколько замечаний:

[d3 ] нет необходимости в файле cat. grep принимает файлы в качестве аргументов одинарной кавычки вашего регулярного выражения; причина в том, что оболочка попытается расширить [0-9] в качестве имен файлов. Если бы были файлы 0,1,2,3 и т. Д. До 9, оболочка расширила вашу команду до grep 0 1 2 3 ... и остальных аргументов. Попробуйте сделать это - touch 0 1 2 && stat [0-2], и вы увидите. Это может стать проблемой, если вам нужно передать вывод grep где-то еще
0
ответ дан 25 May 2018 в 20:23

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

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