줄 시작 부분에 "Result:"라는 문자열이 한 번만 포함된 파일(file_name)이 있습니다. "."이 나타날 때까지 해당 줄에서 "Result:" 문자열 뒤에 오는 모든 문자를 인쇄하고 싶습니다. 특징. 어떤 쉘 명령을 사용해야 합니까?
답변1
Perl 정규식을 실행하는 최신 버전의 GNU grep은 다음을 수행합니다.
grep -P -o '^Result: \K[^.]*'
-o
줄의 일치하는 부분만 인쇄하도록 grep에 지시합니다. 정규식의 -P
with는 \K
너비가 0인 LookBehind 어설션이므로 이전 콘텐츠가 \K
일치 항목(너비 0)의 일부가 되지 않게 됩니다.
답변2
당신은 그것을 사용할 수 있습니다 sed
. 이와 같이:
sed -e 's/Result:\(.*\)\..*$/\1/g' file_name
동일한 파일에 결과를 저장하려면 매개변수 -i
에 추가할 수 있습니다.sed
답변3
<file_name sed -n 's/^Result: \([^.]*\)\..*/\1/p'
<file_name awk '/^Result:.*\./ {sub(/^Result: /,""); sub(/\..*/, ""); print}'
<file_name grep '^Result: .*\.' | sed 's/^Result: //' | sed 's/\..*//'
.
a의 존재가 필요하지 않은 경우 다음으로 변경하십시오.
<file_name sed -n -e 's/\..*//' -e 's/^Result: //p'
<file_name awk '/^Result: / {sub(/^Result: /,""); print}'
<file_name grep '^Result: ' | sed 's/^Result: //'
바라보다이 답변sed 솔루션에 대한 배경 지식을 얻으십시오.