Захват только общего количества от 'местоположения' (строки кода) команда

Так, у меня есть репозиторий GitHub, на котором я хочу отобразить строки кода проекта. Так, я нашел инструмент названным loc (строки кода) здесь. В инструменте это производит строки кода как так:

--------------------------------------------------------------------------------
Language             Files        Lines        Blank      Comment         Code
--------------------------------------------------------------------------------
C++                      1          567           29           22          516
C/C++ Header             2          245           12           15          218
--------------------------------------------------------------------------------
Total                    3          812           41           37          734
--------------------------------------------------------------------------------

Есть ли любой способ, которым я мог grep только Строка итогов в столбце Code? Опции для loc команда только состоит из этого:

USAGE:
    loc [FLAGS] [OPTIONS] [target]...

FLAGS:
        --files      Show stats for individual files
    -h, --help       Prints help information
    -V, --version    Prints version information

OPTIONS:
        --exclude <REGEX>    Rust regex of files to exclude
        --include <REGEX>    Rust regex matching files to include. Anything not matched will be excluded
        --sort <COLUMN>      Column to sort by

ARGS:
    <target>...    File or directory to count
3
задан 1 February 2017 в 20:27

1 ответ

Можно сделать это легко с grep, но Вам нужны два шага:

  1. Фильтр строка, которая содержит Total:

    grep 'Total'
    
  2. Дисплей только последнее число (последовательные цифры) от той строки:

    grep -Po '\d+ 

    -P переключатели к PCRE regex режим, который необходим, чтобы он понял, что \d означает "любую цифру (0-9)".
    -o говорит этому только отображать подобранную последовательность, не целую строку.
    $ соответствия конец строки.

Вместе эти отрывки составляют команду ниже:

loc | grep 'Total' | grep -Po '\d+ <час> 

, Если мы принимаем, у Вас есть файл простого текста, содержащий строку как это:

Текущие строки кода в этом проекте: 123

можно отредактировать этот файл и заменить число в этой строке со значением, сохраненным в переменной Bash $linecount использование эти sed команда ниже. Конечно, необходимо сохранить общее количество строки в той переменной сначала, как это:

linecount=$(loc | grep 'Total' | grep -Po '\d+)

sed -i -E "s/(Current lines of code in this project: )[[:digit:]]+/\1$linecount/" README.MD
<час>

, Если мы принимаем, у Вас есть файл простого текста, содержащий строку как это:

Текущие строки кода в этом проекте: 123

можно отредактировать этот файл и заменить число в этой строке со значением, сохраненным в переменной Bash $linecount использование эти sed команда ниже. Конечно, необходимо сохранить общее количество строки в той переменной сначала, как это:

linecount=$(loc | grep 'Total' | grep -Po '\d+)

sed -i -E "s/(Current lines of code in this project: )[[:digit:]]+/\1$linecount/" README.MD

-P переключатели к PCRE regex режим, который необходим, чтобы он понял, что \d означает "любую цифру (0-9)".
-o говорит этому только отображать подобранную последовательность, не целую строку.
$ соответствия конец строки.

Вместе эти отрывки составляют команду ниже:

loc | grep 'Total' | grep -Po '\d+ <час> 

, Если мы принимаем, у Вас есть файл простого текста, содержащий строку как это:

Текущие строки кода в этом проекте: 123

можно отредактировать этот файл и заменить число в этой строке со значением, сохраненным в переменной Bash $linecount использование эти sed команда ниже. Конечно, необходимо сохранить общее количество строки в той переменной сначала, как это:

linecount=$(loc | grep 'Total' | grep -Po '\d+)

sed -i -E "s/(Current lines of code in this project: )[[:digit:]]+/\1$linecount/" README.MD
<час>

, Если мы принимаем, у Вас есть файл простого текста, содержащий строку как это:

Текущие строки кода в этом проекте: 123

можно отредактировать этот файл и заменить число в этой строке со значением, сохраненным в переменной Bash $linecount использование эти sed команда ниже. Конечно, необходимо сохранить общее количество строки в той переменной сначала, как это:

linecount=$(loc | grep 'Total' | grep -Po '\d+)

sed -i -E "s/(Current lines of code in this project: )[[:digit:]]+/\1$linecount/" README.MD
2
ответ дан 1 December 2019 в 16:56

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

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