Почему вы проходите -c
? Это просто покажет количество матчей. Точно так же нет причин использовать -r
. Я предлагаю вам прочитать man grep
.
Чтобы grep для двух слов, существующих в одной строке, просто выполните:
grep "word1" FILE | grep "word2"
grep "word1" FILE
будет печатать все строки с word1 в их из FILE, а затем grep "word2"
напечатает строки, в которых есть слово2. Следовательно, если вы объедините их с помощью канала, он отобразит строки, содержащие как word1, так и word2.
Если вам просто нужно подсчитать, сколько строк имеет 2 слова в одной строке, выполните:
grep "word1" FILE | grep -c "word2"
Кроме того, чтобы ответить на вопрос, почему он застревает: в grep -c "word1"
вы не указали файл. Поэтому grep
ожидает ввода от stdin
, поэтому он, кажется, виснет. Вы можете нажать Ctrl + D, чтобы отправить EOF (конец файла), чтобы он ушел.
Я использую модуль validator.js для npm для проверки в моей схеме mongoose, и поэтому я проверил его документацию здесь и, проведя еще несколько исследований, наконец нашел ответ.
Схема может быть обновлена, чтобы не проверять mobile phone number
, если значение пусто, например -
contactNum: {
type: String,
required: false,
validate: {
validator: (value) => {
// Check if value is empty then return true.
if (value === "") {
return true;
}
// If value is empty will not validate for mobile phone.
return validator.isMobilePhone(value);
},
message: "{VALUE} is not valid"
}
}
вам нужно обновить свой validator.isMobilePhone (), чтобы он принимал нулевые или пустые значения. И измените свою схему следующим образом
contactNum: {
type: String,
required:false,
validate: {
validator: validator.isMobilePhone,
message: "{Value} is not valid"
}
}
, установив для false значение «Вы можете», и вы сможете достичь желаемого.
измените свою функцию валидатора js следующим образом
Validator.isMobilePhone('telephone', function(value, requirement, attribute) { // requirement parameter defaults to null
if(value.toString()==""){return true;}
return value.match(/^\d{3}-\d{3}-\d{4}$/);
}, 'The :attribute phone number is not in the format XXX-XXX-XXXX.');