Следующие две команды используются для подсчета ненулевых целых чисел второго столбца текстового файла. Может ли кто-нибудь подробно объяснить регулярное выражение.
grep -c '^[^,]*,[^0][^,]*,' < myfile.txt
sed '/^[^,]*,0,.*/d' < myfile.txt | sed -n '$='
решение1
Первое регулярное выражение ищет любую строку, содержащую следующее:
'^ - start of line, followed by
[^,]* - 0 or more non-comma characters, followed by
, - a comma, followed by
[^0] - any single character other than a zero, followed by
[^,]* - 0 or more non-comma characters, followed by
,' - a comma
grep -c подсчитывает количество совпадающих строк
Второе регулярное выражение соответствует
'/ (the start of the regex)
^ - start of line, followed by
[^,]* - 0 or more non-comma characters, followed by
,0, - a comma then a zero then a comma, followed by
.* - 0 or more other characters
/d' (the end of the regex -- delete the lines matching the preceding expression)