게임 전후의 Grep

게임 전후의 Grep

"system path" 이후부터 "type=" 이전까지 모든 것을 grep하고 싶습니다. grep "system path"는 "system path" 이후의 모든 내용을 인쇄합니다.

그냥 줄에서 grep을 원합니다 - system path="file/aww/ld/lslmux

<system path="file/aww/ld/lslmux" type="FILE" reason="filelist" action="NEW" status="COMPLETED"
<system path="file/aww/ld/lslmux/systemfile.xml" type="FILE" reason="filelist" action="NEW" status="COMPLETED"
<system path="file/aww/ld/lslmux/systemfiletest.page" type="FILE" reason="filelist" action="NEW" status="COMPLETED" 

답변1

GNU 사용 grep:

$ grep -oP '<system path="\K[^"]+'  file
file/aww/ld/lslmux
file/aww/ld/lslmux/systemfile.xml
file/aww/ld/lslmux/systemfiletest.page

그리고 Perl:

$ perl -nE 'say for /<system path="\K([^"]+)/g' file

정규식 일치는 다음과 같습니다.

마디 설명하다
\K KLookbehind 어설션을 사용하여 더 짧은 대안으로 일치 시작(ept)을 재설정합니다 .
펄몽스는 주위를 둘러보았다.그리고정규식에서 \K 지원
[^"]+ "(1회 이상(최대한 많이 일치))을 제외한 모든 문자

답변2

다음을 수행하여 각 줄에서 첫 번째로 인용된 하위 문자열을 찾아낼 수 있습니다.

grep -oP '^([^"]+)"\K[^"]+' input_file

관련 정보