다음과 같은 파일이 있는 경우:
example.png example.jpg example2.jpg example2.png example.swf
example2.swf example3.jpg example4.jpg example3.png example3.swf
예를 들어 swf가 포함된 단어를 추출하고 싶은 경우 출력은 다음과 같습니다.
example.swf
example2.swf
example3.swf
시도해 봤는데 grep -o "swf[^[:space:]]*"
그냥 많이 인쇄 swf
되고 그런 다음 시도해 봤는데 grep -o '[^ ]*a\.swf[^ ]*'
출력이 거의 없습니다.철사"swf"가 포함되어 있습니다. 무엇을 해야할지 아는 사람 있나요?
답변1
GNU grep을 사용하십시오:
grep -o '\b\w*\.swf\b' file
산출:
example.swf 예제 2.swf 예 3.swf
\b
: 너비가 0인 단어 경계
\w
: 단어 문자
\.
: 포인트와 일치
바라보다:스택 오버플로 정규식 FAQ
답변2
넌 할 수있어:
grep -o '[^ ]*\.swf' file.txt
[^ ]*
0개 이상의 공백이 아닌 문자와 일치합니다.\.swf
문자 그대로의 의미와 일치.swf
예:
% grep -o '[^ ]*\.swf' file.txt
example.swf
example2.swf
example3.swf
답변3
첫 번째 단계
공백을 줄 끝으로 바꾸려면 다음 명령을 사용하십시오.sed
2 단계
필터 출력 사용grep
예
sed -e s/\ /\\n/g file | grep .swf