파일에서 인용된 문자열의 내용을 추출하는 방법

파일에서 인용된 문자열의 내용을 추출하는 방법

다음과 같은 파일이 있습니다.

anm="12S123S" family="" type="Std" product="" name="nand" allow="yes"
anm="12321 S=" family="" type="Std" product="" name="dan" need="No"
anm="SWED" family="" type="Std" product="" name="dmr" test="clasic"

출력은

12S123S
12321 S=
SWED

답변1

OP에 대한 모든 의견 수집:

by cut(필드 구분 기호를 설정 "하고 구분 기호가 있는 줄에서만 두 번째 필드를 인쇄합니다):

cut -sd\" -f2

통과grep 조립식 쇠지레(패턴을 찾아 \K나중에 그 일부만 인쇄합니다):

grep -Po 'anm="\K[^"]*'

통과awk 제이슨 라이언(필드 구분 기호를 설정 "하고 두 번째 필드를 인쇄합니다):

awk -F\" '{print $2}'

by sed(모든 줄을 다음으로 바꿉니다.역방향 일치(괄호 안 ())은 "첫 번째 항목을 제외한 모든 항목 과 일치 "하고 그러한 대체 항목이 있는 줄만 인쇄합니다.

sed -n 's/[^"]*"\([^"]*\).*/\1/p'

답변2

anm="..."다음과 같이 grep을 사용하여 이 섹션을 추출 할 수 있습니다 .

grep -Eo 'anm="[^"]*"' file

grep 옵션은 -o행의 일치하는 부분만 출력합니다.

그런 다음 각 줄 의 anm="시작과 끝을 삭제합니다."

grep -Eo 'anm="[^"]*"' file | sed -e 's/^anm=\"//' -e 's/\"$//'

관련 정보