s로 끝나는 단어는 제외하지만 s로 끝나는 단어는 제외합니다.

s로 끝나는 단어는 제외하지만 s로 끝나는 단어는 제외합니다.

d(대문자 또는 소문자)로 시작하고 그 뒤에 y를 포함한 소문자 모음이 오고 s로 끝나는 5개의 문자 단어 목록을 찾아야 합니다. 내 명령: grep -i '^d[aeiouy]....s$' 파일 이름. '가 포함된 단어를 목록에서 제외하고 싶은데 명령을 어떻게 작성해야 할지 모르겠습니다.

답변1

당신은 매우 가깝습니다. 그것은해야한다

grep -i '^d[aeiouy].[^']s$' file

문자가 너무 많아 .마지막 문자에서 두 번째 문자를 제외하려고 합니다 '. 각각은 .캐릭터의 자리 표시자라는 점을 기억하세요. 단어가 실행 중인 텍스트에 있는 경우 단어 구분 기호로 선택할 수 있지만 \<사용해야 \>할 수도 있습니다 egrep. 실행 중인 텍스트에서 기준과 일치하는 모든 단어를 추출하려면 다음을 사용해야 합니다.

sed 's/[[:space:]][[:space:]]*/\
/g' foobar | grep "^[dD][aeiouy].[^']s$"

sed한 줄의 모든 단어를 개별적으로 구분할 수 있습니다. \첫 번째 줄 뒤의 개행 문자에 유의하세요 .

답변2

앵커 포인트를 방지하려면 옵션을 ^$사용할 수 있습니다 -x.
d대문자 또는 소문자일 수 있지만 모음만 소문자인 경우 앞의 기호가 구두점이나 공백이 아님을
\B의미합니다 .null inside of word

grep -x '[Dd][aeiouy]..\Bs' file

답변3

다음을 시도해보세요: grep -i "^d[aeiouy]...[^']s$" <file name>. '마지막 위치의 문자를 제외합니다 .

관련 정보