Примеры экземпляров графа с использованием grep

В настоящее время по состоянию на 14.04 - redshift находится в репозиториях по умолчанию:

sudo apt-get install redshift redshift-gtk
4
задан 13 May 2017 в 20:41

12 ответов

Ваша команда будет фактически подсчитывать количество строк, содержащих / в стандартном выводе команды /home/usr/bin/test

. Вот некоторые опции для подсчета экземпляров / в линиях /home/usr/bin/test:

grep -o '/' <<< "/home/usr/bin/test" | wc -l

tr -dc '/' <<< "/home/usr/bin/test" | wc -c
4
ответ дан 22 May 2018 в 22:39

Ваша команда будет фактически подсчитывать количество строк, содержащих / в стандартном выводе команды /home/usr/bin/test

. Вот некоторые опции для подсчета экземпляров / в линиях /home/usr/bin/test:

grep -o '/' <<< "/home/usr/bin/test" | wc -l tr -dc '/' <<< "/home/usr/bin/test" | wc -c
4
ответ дан 18 July 2018 в 13:21

Ваша команда будет фактически подсчитывать количество строк, содержащих / в стандартном выводе команды /home/usr/bin/test

. Вот некоторые опции для подсчета экземпляров / в линиях /home/usr/bin/test:

grep -o '/' <<< "/home/usr/bin/test" | wc -l tr -dc '/' <<< "/home/usr/bin/test" | wc -c
4
ответ дан 24 July 2018 в 20:09

Поскольку grep -c подсчитывает количество строк, содержащих шаблон. Использование опции -o выводит согласованное содержимое на разные строки. Затем вы можете использовать -c для подсчета этих строк.

grep -o '/' <<< "/home/usr/bin/test" |  grep '/' -c
4
ответ дан 22 May 2018 в 22:39

Используя awk (печатайте каждую строку отдельно):

awk -F"/" '{print NF-1}' my.txt
-F"/": рассмотрите / как разделители полей NF-1: количество полей-1.

Печать всех строк:

tr -d '\n' < my.txt | awk -F"/" '{print NF-1}'

Использование sed и grep:

sed "s@/@/\n@g" my.txt | grep -c /
-F"/": рассмотрим / как полевые разделители
3
ответ дан 22 May 2018 в 22:39

Вы делаете это неправильно, потому что:

-c флаг подсчитывает количество совпадающих строк "/home/usr/bin/test | grep / -c буквально означает, что вы пытаетесь выполнить файл /home/usr/bin/test и вывести его вывод на [ f6]

Что вы должны делать, так это:

-c флаг подсчитывает количество совпадающих строк использует инструменты, отличные от grep:
 # saving matches to array and printing array in scalar context
 $ perl -ne '@arr = $_ =~ /\//g;print 0+@arr' <<< "/home/usr/bin/test"                                                    
 4

 #  building list of only / chars and getting length of that list
 $ python -c 'import sys; print(len([char for line in sys.stdin for char in line if char == "/"]))' <<< "/home/usr/bin/test"
 4

 # iterating over each character of string using substr
 $ awk '{for(i=1;i<=length($0);i++) if(substr($0,i,1)=="/") count++}END{print count}' <<< "/home/usr/bin/test"            
 4
2
ответ дан 22 May 2018 в 22:39

Используя awk (печатайте каждую строку отдельно):

awk -F"/" '{print NF-1}' my.txt -F"/": рассмотрите / как разделители полей NF-1: количество полей-1.

Печать всех строк:

tr -d '\n' < my.txt | awk -F"/" '{print NF-1}'

Использование sed и grep:

sed "s@/@/\n@g" my.txt | grep -c / -F"/": рассмотрим / как полевые разделители
3
ответ дан 18 July 2018 в 13:21

Вы делаете это неправильно, потому что:

-c флаг подсчитывает количество совпадающих строк "/home/usr/bin/test | grep / -c буквально означает, что вы пытаетесь выполнить файл /home/usr/bin/test и вывести его вывод на grep

Что вы должны делать, так это:

-c флаг подсчитывает количество совпадающих строк использует инструменты, отличные от grep: # saving matches to array and printing array in scalar context $ perl -ne '@arr = $_ =~ /\//g;print 0+@arr' <<< "/home/usr/bin/test" 4 # building list of only / chars and getting length of that list $ python -c 'import sys; print(len([char for line in sys.stdin for char in line if char == "/"]))' <<< "/home/usr/bin/test" 4 # iterating over each character of string using substr $ awk '{for(i=1;i<=length($0);i++) if(substr($0,i,1)=="/") count++}END{print count}' <<< "/home/usr/bin/test" 4
2
ответ дан 18 July 2018 в 13:21

Поскольку grep -c подсчитывает количество строк, содержащих шаблон. Использование опции -o выводит согласованное содержимое на разные строки. Затем вы можете использовать -c для подсчета этих строк.

grep -o '/' <<< "/home/usr/bin/test" | grep '/' -c
4
ответ дан 18 July 2018 в 13:21

Используя awk (печатайте каждую строку отдельно):

awk -F"/" '{print NF-1}' my.txt -F"/": рассмотрите / как разделители полей NF-1: количество полей-1.

Печать всех строк:

tr -d '\n' < my.txt | awk -F"/" '{print NF-1}'

Использование sed и grep:

sed "s@/@/\n@g" my.txt | grep -c / -F"/": рассмотрим / как полевые разделители
3
ответ дан 24 July 2018 в 20:09

Вы делаете это неправильно, потому что:

-c флаг подсчитывает количество совпадающих строк "/home/usr/bin/test | grep / -c буквально означает, что вы пытаетесь выполнить файл /home/usr/bin/test и вывести его вывод на grep

Что вы должны делать, так это:

-c флаг подсчитывает количество совпадающих строк использует инструменты, отличные от grep: # saving matches to array and printing array in scalar context $ perl -ne '@arr = $_ =~ /\//g;print 0+@arr' <<< "/home/usr/bin/test" 4 # building list of only / chars and getting length of that list $ python -c 'import sys; print(len([char for line in sys.stdin for char in line if char == "/"]))' <<< "/home/usr/bin/test" 4 # iterating over each character of string using substr $ awk '{for(i=1;i<=length($0);i++) if(substr($0,i,1)=="/") count++}END{print count}' <<< "/home/usr/bin/test" 4
2
ответ дан 24 July 2018 в 20:09

Поскольку grep -c подсчитывает количество строк, содержащих шаблон. Использование опции -o выводит согласованное содержимое на разные строки. Затем вы можете использовать -c для подсчета этих строк.

grep -o '/' <<< "/home/usr/bin/test" | grep '/' -c
4
ответ дан 24 July 2018 в 20:09

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

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