알겠습니다. 또 다른 질문입니다. 포트를 가져온 다음 이를 교체하여 구성 파일에 넣는 스크립트를 작성 중입니다. 예를 들어.
이 명령을 실행하면...(cat /var/log/lighttpd/access.log | tail -1) 마지막 줄은 숫자 12입니다. 그런 다음 (sed -i 's/ 8162/81 ??????/' /etc/lighttpd/lighttpd.conf)에서 cat (/var/log/lighttpd/access.log | tail -1)을 출력하고 싶습니다. 포트 8162와 /8112는 12입니다. 기본적으로 출력 12를 가져온 다음 새 포트 8112를 생성합니다. 변수 등을 생성하려면 어떻게 해야 합니까? awk가 유용합니까? 아니면 순차적으로 뭔가를 해야 할 수도 있습니다. 나는 모른다. 어떤 아이디어나 생각이 있나요? ? ?
답변1
다음 방법을 시도해 보세요.
- 캡처
12
변수:var=$(cat /var/log/lighttpd/access.log | tail -1)
, 그런 다음 이것을
sed
명령에 넣으세요:sed -i.bak "s/8162/81$var/" /etc/lighttpd/lighttpd.conf
또는
cat
이제 다음과 같이 sed에 명령줄을 추가합니다.sed -i.bak "s/8162/81$(cat /var/log/lighttpd/access.log | tail -1)/" /etc/lighttpd/lighttpd.conf
경고하다:
이 구문에 문제가 발생할 경우를 대비하여 항상 백업을 만드십시오.
sed -i.bak "s/8162/81$(cat /var/log/lighttpd/access.log | tail -1)/" /etc/lighttpd/lighttpd.conf
사용된 큰따옴표에 유의하십시오
"
. 큰따옴표가 없으면 명령이 변수를 처리하지 않거나$(cat /var/log/lighttpd/access.log | tail -1)