bash에서 이 문자열을 검색할 수 있는 명령은 무엇입니까?

bash에서 이 문자열을 검색할 수 있는 명령은 무엇입니까?

file.txt포함하다:

aa=testing
sss=whoiam
bbb=findme

테스트를 검색하고 인쇄하려면 어떤 명령을 사용합니까?

예상되는 결과:

# you search testing

답변1

당신이 사용할 수있는 grep:

string=testing && grep "$string" file.txt 2>&1 >/dev/null && echo "you search $string"

파일 어딘가에서 "testing"이라는 문자열이 발견되면 "you search Testing"이라는 문자열이 인쇄됩니다 file.txt.

  • string=testing:변수 설정$string
  • grep "$string" file.txt 2>&1>/dev/null: grep파일에서 이 문자열을 검색합니다. ( stdinstderr)가 모두 로 리디렉션되므로 이러한 출력을 원하지 않습니다 /dev/null.
  • echo "you search $string": 모든 것이 성공하면 문자열을 인쇄합니다.

패턴의 변수를 변경하기만 하면 됩니다 $string.

추가 질문:

aa 값을 검색하려면 어떻게 해야 하나요?

이 oneliner에서는 aa 값도 검색됩니다. file.txt 파일의 전체 내용이 사라졌습니다.

내 참조가 aa이고 해당 값(테스트)이 아니라는 뜻인가요?

이것을 사용하십시오 :

string=aa && grep "^$string=" file.txt | awk -F= '{printf "you search %s\n", $2}'

변수 이름으로 aa를 검색한 다음 값을 인쇄합니다. 출력은 다음과 같습니다:

you search testing

관련 정보