평균 CPU 사용량 로그를 저장하기 위해 파일을 생성하려고 합니다.
sudo mpstat 1 5 | grep Average | sed -E 's|Average:|$(date)|g' > cpu_usage_test.txt
"평균:" 텍스트를 현재 날짜 및 시간으로 바꾸려고 합니다. 다른 접근 방식을 시도했지만 출력에는 $(date)가 문자열로 표시됩니다. 쉽게 테스트하려면 다음 명령을 사용하여 터미널 자체에 표시하십시오.
sudo mpstat 1 1 | grep Average | sed -E 's|Average:|$(date)|g'
답변1
쉘은 작은따옴표로 묶인 문자열의 어떤 것도 대체하지 않습니다. 대신 큰따옴표를 사용하세요.
해당 옵션은 필요하지 않으며 다음 없이도 -E
사용할 수 있습니다 .grep
sudo
mpstat 1 1 | sed -n "s|Average:|$(date)|gp"
-E
아니요, 여기서는 확장 정규 표현식이 사용되지 않습니다. 기본적으로 인쇄를 -n
방지하고 sed
" p
Average:"가 실제로 대체된 경우에만 줄을 인쇄합니다.
이것GNU sed 매뉴얼그건 그렇고, 학습에 나쁘지 않습니다.