파일에서 문자열 값을 추출하고 반환하려면 스크립트를 작성해야 합니다. 이 작업은 지정된 패턴과 일치하는 항목이 파일에서 발견된 경우에만 수행되어야 합니다.
예:
"id":"re454sv:57ghg34sfw:87wre56:rty4598gh"
텍스트는 대용량 로그 파일의 하위 섹션이며 이와 같은 상황이 많이 발생할 수 있습니다 "id":"some value"
. 해당 디렉터리에 있는 많은 파일에서 매번 "일부 값" 부분을 반환해야 합니다.
Unix의 유틸리티가 여기에 도움이 될 것이라고 생각 sed
하지만 정확한 사용법을 알 수 없습니다. 누구든지 도움을 주시면 기쁘겠습니다.
답변1
:
첫 번째 구분된 값만 원하는지 아니면 marker 뒤의 나머지 줄 전체를 원하는지 명확하지 않습니다 "id"
.
전자는 다음과 같습니다
sed -nre 's/^"id":"([^:]*):.*/\1/p' <file>
후자는 다음과 같습니다
sed -nre 's/^"id":(.*)/\1/p' <file>
스위치가 중요하다는 점에 유의하세요. -n
아무 것도 인쇄하지 않도록 하십시오( p
일치하는 줄은 끝에 인쇄됩니다). -r
괄호와 같은 항목을 이스케이프할 필요가 없도록 확장된 정규식 구문 분석을 활성화합니다.
답변2
sed 's/"id":"\([^"]*\)"/\1/g'
stdin을 통해 값을 입력한 경우 값을 추출합니다.