파일에 특정 패턴이 포함되어 있는지 확인하시겠습니까?

파일에 특정 패턴이 포함되어 있는지 확인하시겠습니까?
#!/usr/bin/expect -f

ps

ps -ef > test.txt

이제 test.txt에 특정 키워드가 있는지 확인하고 싶다면 어떻게 해야 합니까?

예를 들어 "apache" 또는 "fast"입니다.

여기서 if 문을 사용할 수 있나요? 그렇다면 어떻게 사용하나요?

답변1

첫째, 첫 번째 shebang 줄은 원하는 스크립트가 아닙니다. 쉘의 용도는 제한적일 것으로 예상됩니다. 이는 그중 하나가 아닙니다.

첫 번째 줄은 다음과 같아야합니다

#!/bin/bash

당신의 경우에는

그 다음에

ps -ef > test.txt
grep -e fast -e apache test.txt

이 단어가 포함된 모든 줄을 인쇄합니다.

또는 파일 단계에 쓰기를 건너뛰고 다음과 같이 한 줄로 수행할 수 있습니다.

ps -ef | grep -e fast -e apache 

편집 조건 확인:

ps -ef | grep -e fast -e apache | grep -v grep > dev/null; result=${?}
if [ ${result} -eq 0 ]
then
  echo "Found one or more occurrences of 'apache' and/or 'fast'"
else
  echo "Searched strings were not found"
fi

답변2

여기서 배열을 선언할 수 있습니다.

#!/bin/bash

string=('fast' 'apache')

ps -ef > test.txt

for i in "$string[@]"
do
    grep "$i" test.txt
done

아니면 라인에서 직접 수행하고 ps해당 프로세스만 저장할 수도 있습니다.

#!/bin/bash

string=('fast' 'apache')

for i in "$string[@]"
do
    ps -ef | grep "$i" > ps_output_of_$i.txt
done

시도 해봐

관련 정보