Как изменить ссылку на СС в Centos

Вот скрипт awk, который ищет строки, содержащие . , ?, или ! . Он печатает номер строки каждой строки, содержащей любой из этих знаков препинания, номер найденного знака, плюс общее количество знаков на этой строке. В конце данных выводится общий итог.

Вы можете передать ему несколько имен файлов в командной строке, и он будет вести себя так, как будто вы catted все файлы вместе, но довольно легко модифицировать этот скрипт для обработки каждого файла по отдельности.

#!/usr/bin/awk -f

# Count punctuation marks
# See http://unix.stackexchange.com/q/239894/88378
# Written by PM 2Ring 2015.10.131

BEGIN{
    FS = ""
    punc = ".?!"
    fmt = "%5s: .=%s, ?=%s, !=%s, all=%s\n"
}

/[.?!]+/{
    #print NR, $0, NF
    count[1] = count[2] = count[3] = 0
    for(i=1; i<=NF; i++)
    {
        n = index(punc, $i)
        if(n)
            count[n] += 1
    }
    all = count[1] + count[2] + count[3]
    printf fmt, NR, count[1], count[2], count[3], all
    for(i=1; i<=3; i++)
        total[i] += count[i]
}

END{
    all = total[1] + total[2] + total[3]
    printf fmt, "Total", total[1], total[2], total[3], all
}

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

Some test data
.a.?? .u o..ru. !!?aarl.?...t  s
e.?a.eli?.?s.. ?.r. s.t .e.a.le!
ti h  ..rs.  ?er.t. dn!t?.?.l.?t
?.n!rer e. d..!???? a .!..a.tit.
No punctuation
!.a.n..!isda!.o a!le.d..a.!sh.t?
?!?. ..!i  hi...h iii.?..a i hh?
.h r.u?....t..s !.. a  .li?hs !.
ia tso???.tr?t .hl..i.aids l.?.?
Bye-bye.

А вот вывод, который получился:

    2: .=10, ?=4, !=2, all=16
    3: .=11, ?=4, !=1, all=16
    4: .=8, ?=4, !=1, all=13
    5: .=9, ?=5, !=3, all=17
    7: .=10, ?=1, !=5, all=16
    8: .=9, ?=4, !=2, all=15
    9: .=12, ?=2, !=2, all=16
   10: .=7, ?=6, !=0, all=13
   11: .=1, ?=0, !=0, all=1
Total: .=77, ?=30, !=16, all=123

Проверено на GNU Awk 3.1.7

1
17.03.2018, 16:34
2 ответа

La línea

CC ?= gcc

en el Makefile significa "si la variable CCaún no está establecida, configúrela en gcc".

Más adelante en el Makefile, el compilador enumerado en la variable CCse usará para compilar archivos de lenguaje C(CCes una variable estándar para el compilador C ).

Si gcces el compilador que desea usar, no tiene que cambiar nada.

Si quiere usar otro compilador, como clango gcc-7o algo completamente distinto, no tiene que cambiar el Makefile. En su lugar, simplemente diga

make CC=clang

en la línea de comando (donde clangpuede ser solo el nombre ejecutable del compilador, o su ruta completa si no está disponible en su propio$PATH).

Para usarccache(una "caché del compilador")con, p. clang,

make CC='ccache clang'

Dado que Makefile comprueba si la variable CCestá configurada antes de configurarla en gcc, la forma mencionada anteriormente es la mejor manera de invocar makecon un compilador diferente. Si hubiera establecido el valor de CCincondicionalmente, habría tenido que editar el Makefile.

0
27.01.2020, 23:43

CC в вашем makefile— это просто переменная. Вы можете указать любой компилятор или исполняемый файл в вашей системе.

Найдите прямой путь к вашему "новому" gcc и включите его CC={Path}и компиляция должна быть в порядке.

1
27.01.2020, 23:43

Теги

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