Поля cut Command

Похоже, у вас проблемы с сетью. Вы можете запустить эту команду netstat -tunalp | grep: 80 как пользователь root и проверьте, какой IP-адрес указан в списке http. Также проверьте конфигурацию apache на предмет директивы Listen .

4
02.11.2018, 05:17
1 ответ

Это связано с тем, что подстановка команды обратной кавычки ``без кавычек удалила лишний пробел между символами model nameи :.Обратитесь к выводам без grep, чтобы увидеть разницу для себя

.
echo `cat /proc/cpuinfo | grep 'model name' | uniq`
model name : Intel(R) Core(TM) i7-5600U CPU @ 2.60GHz

и с

cat /proc/cpuinfo | grep 'model name' | uniq
model name  : Intel(R) Core(TM) i7-5600U CPU @ 2.60GHz
#         ^^ - 2 spaces rather than one

В результате cutвидит разные поля, начиная с номера 3и далее в обоих случаях. Это можно исправить, если вы избегаете использования обратных кавычек и используете $(..)с правильной заменой

в кавычках.
echo "$(cat /proc/cpuinfo | grep 'model name' | uniq)" | cut -d ' ' -f 3,4,5,6,7,8

Но при этом последовательного использования cat/ grepи т. д. можно избежать, и можно использовать один awkвместо -вместо него

awk -F: '$1 ~ "model name" { print $2 }' /proc/cpuinfo

Или, точнее, если один начальный пробел в приведенном выше результате вызывает беспокойство, удалите его, используяsub

awk -F: '$1 ~ "model name" { sub(/^[[:space:]]/,"", $2); print $2 }' /proc/cpuinfo

Или, если у вас есть GNUвариант grepс включенным регулярным выражением PCRE, который вы можете использовать как

grep -oP 'model name(\s+):(\s+)\K(.+)' /proc/cpuinfo
9
27.01.2020, 20:49

Теги

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