나는 이 grep
명령을 이해하려고 노력하고 있습니다.
#CPU physical: $(lscpu -b -p=Socket | grep -v '^#' | sort -u | wc -l)
이것은 잘 이해된 것 같습니다. 내가 얻을 수 없는 유일한 것은 ^
컨트롤() 앞에 있는 해시( #
)입니까?
답변1
^
이 문자는 "줄의 시작"을 의미한다고 생각하면 됩니다 ^#
.#
줄의 시작 부분에- 즉, 한 줄은 주석입니다.
-v
옵션을 사용하면 grep
일치하지 않는 행을 선택할 수 있습니다.
실제로 이 명령은 이 경우 주석을 필터링합니다.
바라보다여기Bash의 정규 표현식에 대한 추가 정보.
답변2
grep -v 명령 없이 명령을 실행해 보고 차이점을 확인해야 합니다.
grep -v "^#"
- lscpu 출력에서 모든 주석을 제거합니다.
일치의 의미를 바꾸고 일치하지 않는 행을 선택합니다. 다음은 출력을 필터링하지 않고 동일한 답변을 얻는 방법에 대한 예입니다.
egrep "physical id" /proc/cpuinfo|sort -u|wc -l