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
파일에서 이 문자열을 검색합니다. (stdin
및stderr
)가 모두 로 리디렉션되므로 이러한 출력을 원하지 않습니다/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