일치하는 단어뿐만 아니라 전체 줄을 출력하고 싶습니다.
파일.txt
Name Surname Class Best-Lesson
1.Nick Fras Mat Chemic
2.Cris Fras Chemic Mat
3.Dani Cris Philos Physical
4.Quar Qand Dani Cris
나는 이것을 전반적으로 원한다
grep parameters Dani Chris
output: 3.Dani Cris Philos Physical
나는 이것을 원하지 않는다(-o 사용)
Dani Cris
답변1
OP의 의견에 따르면 이 grep은 OP가 원하는 결과를 생성할 수 있어야 합니다.
grep -iE "^[[:digit:]]\.Dani\s{0,}C[h]*ris" input.txt | xargs echo "output:"
또는 agep
내 Ubuntu 시스템에 존재하지 않아 설치된 명령을 사용합니다.
agrep -1 '[0-9]\.Dani#Chris' input.txt | xargs echo "output:"
결과:
output: 3.Dani Cris Philos Physical
정보:
[[:digit:]]\.
, : 입력파일에서[0-9]\.
일부 선택3.
Dani\s{0,}
,Dani#Chris
: 이름 뒤에 공백이 있어도 tex Dani를 가져옵니다.C[h]*ris
: 캡처Cris
또는Chris
| xargs echo "Output:"
: xargs를 클릭하고Output:
결과 앞에 텍스트를 추가합니다.
답변2
sed, awk, grep으로도 이 작업을 수행할 수 있습니다.
방법 1 sed 사용
sed -n '/Dani/p’ example.txt | sed -n '/Dani/p’
방법 2 awk 사용
awk '$0 ~ "Dani" && $0 ~ "Cris" {print $0}’ example.txt
방법 3 grep 사용
grep 'Dani' example.txt | grep ' Cris'
산출
3.Dani Cris Philos Physical