s0481
10
2019-12-16 11:53:13
4
197

리눅스 문자추출 문의드립니다.


"로 시작하고 ;로 끝나는 문자열을 추출하고 싶습니다.


아래는 파일 내용입니다.

$cat TEST_FILE
ABC"DEF;G
AB
C"DE
F;G


grep "\".*;" TEST_FILE 명령문으로 실행해보았습니다.

ABCDEFG


제가 원하는 문자열은 아래와 같습니다.

DEF
DEF


첫번째로 grep 사용시 조건에 해당하는 행을 모두 출력하다는 점,

두번째로 행이 다를 경우 검색조건에 해당하지 않다고 판단하는 점


어떻게 명령을 수정해야 DEF만 출력을 할 수 있을까요?

리눅스를 공부 한지 오래되지 않아 실력이 많이 부족합니다.

부탁드립니다 ㅠ



0
0
  • 답변 4

  • 아무르
    476
    2019-12-16 11:57:59

    비슷한 질문들이 자주 올라오는 편인데 grep으로는 가능한지 불가능한지 잘 모르겠으나 python regexp를 사용하면 가능합니다.

    0
  • 밋꾸
    119
    2019-12-16 12:12:55
    일단 해당 파일의 개행문자를 모두 없애고 탐색하는게 빠르지 않을까싶네요
    0
  • 아범테크
    519
    2019-12-16 14:01:22

    grep은 패턴 매칭이지, 문자열 추출 및 처리 (질문에서는 newline을 제거하는 식의 처리를 해야하죠) 프로그램이 아닙니다.

    awk같은 프로그래밍 가능한 문자열 처리 커맨드를 쓰셔야 합니다.

    아니면 윗분 말씀대로 파이썬의 정규표현식인 regexp를 쓰시는 걸 추천합니다 ㅎ

    0
  • s0481
    10
    2019-12-16 14:16:22 작성 2019-12-16 14:21:00 수정됨

    오오..


    grep 옵션중 -P 옵션으로 regexp로 패턴 검색으로 성공했네요

    다른 분들은 어떻게 해결하셨는지 궁금하네요.

    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.