"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 |
K Lookbehind 어설션을 사용하여 더 짧은 대안으로 일치 시작(ept)을 재설정합니다 .펄몽스는 주위를 둘러보았다.그리고정규식에서 \K 지원 |
[^"]+ |
" (1회 이상(최대한 많이 일치))을 제외한 모든 문자 |
답변2
다음을 수행하여 각 줄에서 첫 번째로 인용된 하위 문자열을 찾아낼 수 있습니다.
grep -oP '^([^"]+)"\K[^"]+' input_file