Как я получаю весь вывод своего компилятора в файл?

  • Вы сделали так, чтобы оно совпадало с чем угодно , кроме чисел (^ в начале списка персонажей \d)
  • Вы не сделали два номера необязательно пока. [^\d,.] означает, что требуется ровно один из этих символов. И поскольку он может соответствовать только одной из запятой или точке с цифрой, вы не можете делать десятичные дроби. Если вы хотите определить количество раз, вам нужно добавить . для одного или более, * для нуля или более или сделать диапазон {min,max} после [^\d,.].
  • Вы не захватываете два числа, даже если они совпадают - отсутствует ().
  • Вы, вероятно, захотите сопоставить, только если указаны и долгота, и широта, а не одно или другое - отсутствует группировка их обоих (но без захвата).
  • Попробуйте тестеры регулярных выражений, например https://regex101.com/r/PtwC0b/4 Хотя в Apache я не думаю, что вам нужно бежать / с помощью \, так что игнорируйте \/.

    Конечным результатом является что-то , подобное /lists/([a-zA-z]+)/(?:([\d.]+)/([\d.]+)/){0,1}

    Группа (?: ... ){0,1} не захватывает, но гарантирует, что все в ней является одной группой - то есть, предоставляют только долготу и широту ( и ровно ноль или один их набор). Для полного объяснения см. https://regex101.com/r/PtwC0b/4

    explanation from regex101.com [1115]

    Это не был протестирован на Apache.

57
задан onekanban 20 February 2017 в 07:45
поделиться

7 ответов

В оболочка C - амперсанд после большего - чем символ

make >& filename
0
ответ дан 24 November 2019 в 19:17
поделиться

Предупреждения компилятора появляются на stderr , а не на stdout , поэтому вы не видите их, когда вы просто перенаправляете make в другое место. Вместо этого попробуйте следующее, если вы используете Bash:

$ make &> results.txt

& означает «перенаправить stdout и stderr в это место». Другие оболочки часто имеют похожие конструкции.

107
ответ дан 24 November 2019 в 19:17
поделиться

В оболочке bourne shell:

make > my.log 2>&1

Т.е. > перенаправляет stdout, 2>&1 перенаправляет stderr туда же, куда и stdout

26
ответ дан 24 November 2019 в 19:17
поделиться

Вывод пошел в stderr. Используйте 2>, чтобы перехватить это.

$make 2> file
5
ответ дан 24 November 2019 в 19:17
поделиться

От http://www.oreillynet.com/linux/cmd/cmd.csp?path=g/gcc

Символ > не перенаправляет стандартную ошибку. Он полезен, когда вы хотите сохранить законный вывод без засоряя файл сообщениями об ошибках. Но что, если сообщения об ошибках - это то, что вы хотите сохранить? Это довольно часто встречается при поиске и устранении неисправностей. Решение решение - использовать знак "больше, чем за которым следует амперсанд. (Эта конструкция работает почти во всех современных оболочке UNIX.) Она перенаправляет как стандартный вывод и стандартную ошибку. Например:

$ gcc invinitjig.c >& error-msg

Посмотрите там, если это поможет: another forum

3
ответ дан 24 November 2019 в 19:17
поделиться

Попробуйте сделать 2> файл . Предупреждения компилятора выводятся в стандартном потоке ошибок, а не в стандартном потоке вывода. Если мое предложение не сработает, обратитесь к руководству по оболочке, чтобы узнать, как устранить стандартную ошибку.

0
ответ дан 24 November 2019 в 19:17
поделиться

Пока много хороших ответов. Вот один фрилл:

$ make 2>&1 | tee filetokeepitin.txt 

позволит вам наблюдать, как вывод прокручивается мимо.

22
ответ дан 24 November 2019 в 19:17
поделиться
Другие вопросы по тегам:

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