Объедините несколько команд Unix в один вывод

Ошибка предлагает HTTP 401 (не авторизованный) ответ. Таким образом, IE определенно отправляет учетные данные, это - сервер, который отклоняет их.

Я предполагаю, что Firefox успешно выполняется, потому что он использует стандартную аутентификацию, тогда как IE использует аутентификацию NTLM. Попытайтесь отключить все типы аутентификации для своего "сайта" значения заголовка хоста за исключением основного.

9
задан 9 March 2011 в 00:03
5 ответов

Иначе

{ grep ...; bzgrep ...;} >file

&& испытывает затруднения что bzgrep не был бы выполнен если grep неудавшийся.

Отметьте обязательное пространство после вводной изогнутой фигурной скобки и точки с запятой после последней команды. С другой стороны, можно использовать синтаксис подоболочки (круглые скобки вместо фигурных скобок), который не так придирчив:

(grep ...; bzgrep ...) >file
24
ответ дан 2 December 2019 в 22:18

bzgrep автоматически принимают значение по умолчанию к регулярному grep, если файл не bzip-сжат. Таким образом следующее должно быть достаточным:

bzgrep person@domain.com maillog *bz2 | mail -s "logs yay" someuser@blah

о, также, конечно, вот мое обязательное решение для Параллели GNU также:

parallel -m bzgrep person@domain.com ::: maillog* *bz2 | mail -s "logs yay" someuser@blah

который мог быть намного быстрее, если Вы проверяете много файлов.

11
ответ дан 2 December 2019 в 22:18

Вот другой способ сделать это (предположение, что Вы выполняете удар, который Вы, вероятно):

cat <(bzgrep ...) <(grep ...)

Здесь удар прозрачно подает вывод bzgrep и команд grep в кошку, как будто они были файлами (и они сортируют, находятся под капотом, деталями в URL внизу).

В Вашем особом случае я рекомендовал бы решение Phil, но вышеупомянутое является хорошим приемом для хранения в сумке.

Если Вам интересно, можно читать больше здесь: http://www.tldp.org/LDP/abs/html/process-sub.html

2
ответ дан 2 December 2019 в 22:18

Можно связать команды вместе с &&, который позволит Вам выполнять каждую команду.

Вы могли также добавить>> textfile.txt в конец каждой команды и иметь вывод, поражает файл затем почта, которые выходят друг за другом.

0
ответ дан 2 December 2019 в 22:18

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

Вы можете использовать составные команды:

{ grep ...; bzgrep ...; } >file

...или подоболочки (обратите внимание на круглые скобки вместо фигурных скобок):

(grep ...; bzgrep ...) >file

...чтобы сгруппировать команды. Способ подоболочек имеет более приятный синтаксис (более щадящий недостаток пробелов и позволяющий опустить последнюю точку с запятой), но он либо вилкирует новый процесс, либо "притворяется", выполняя команды в очищенном окружении. У обоих есть преимущества в зависимости от того, что вы хотите сделать, что здесь не имеет значения, но стоит поискать, если вы хотите больше знать оболочку.

Примечание: Вы можете использовать обвязку и с этими трюками, так что вы можете сделать что-то вроде этого:

{ grep ...; bzgrep ...; } | less

P.S. Если вас не волнует порядок следования совпадений в вашем комбинированном выводе, вы можете использовать одну единственную и между двумя командами, например, так: { grep ... & bzgrep ...; }. Затем одновременно выполняются две команды: запускается grep и оболочка помещает его в фон, затем оболочка запускает bzgrep. (Но есть небольшое предостережение по этому поводу, объяснение, включающее перенаправление файла и буферизацию файлового потока, может привести к тому, что очень маленькая часть строк в выходном файле будет разбита/смешана: увидите ли вы это, будет зависеть от того, как реализованы ваши функции grep, bzgrep, и libc stdio.h. В большинстве реализаций, я считаю, что конвейерная обработка команды перед перенаправлением в файл позволит избежать проблемы, поэтому вы можете сделать { foo & bar; }. | cat - > file в качестве обходного пути.)

.
1
ответ дан 2 December 2019 в 22:18

Теги

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