rrerer
335
2018-09-27 18:25:46
6
610

shell script 문자열 처리


jandi='{

"body":"test",

"connectColor" : "#FAC11B",

"connectInfo" : [{

"title":"test",

"description":"test'"

},{

"title":"test",

"description":"test"

},{

"title":"date",

"description":"test"

},{

"title":"test",

"description":"test"

}]}'


jandis='{

"body":"test",

"connectColor" : "#FAC11B",

"connectInfo" : [{

"title":"test",

"description":"test"

},{

"title":"test",

"description":"test"

},{

"title":"date",

"description":"test"

},{

"title":"test",

"description":"'test"

}]}'


안녕하세요.

위에 json을 공백을 기준으로 jandi,jandis 자르고 싶은데 아무리 해도 방법을 못찾아서 도움을 요청합니다.
위에 방법말고도 jandi만 살리고 나머지는 버리는 스크립트 힌트라도 괜찮습니다.


0
0
  • 답변 6

  • jjmean2
    248
    2018-09-27 18:34:16 작성 2018-09-27 18:34:33 수정됨

    위의 문자열은 파일의 내용인 건가요? 아니면 다른 스크립트의 출력인가요? jandi, jandis로 자른다는 말씀은 저 문자열 중 jandi 만 출력되게, 또는 jandis만 출력되게 하신다는 건가요? 아니면 그 문자열를 어디 변수에 Array로 저장하신다는 건가요? 

    0
  • rrerer
    335
    2018-09-27 18:54:59 작성 2018-09-27 18:55:08 수정됨

    jjmean2
    글 쓰는 재주가 없어 죄송합니다. 


    1. 위에 문자열은 파일에 내용입니다. 

    2. 최종적 목적은 jandi , jandis를 각자 분리하여 다른 변수에 저장하여 사용할려고 합니다.

    출력만 되게 한다면 다른 변수에 저장하는것도 다르지 않을 거 같다는 생각입니다.


    감사합니다 :)


    0
  • jjmean2
    248
    2018-09-27 20:04:50

    jandi 와 jandis 라는 변수 안에 각각 = 뒤에 있는 다음과 같은 JSON 문자열을 값으로 할당하려고 하시는 거면

    {
    "body":"test",
    "connectColor" : "#FAC11B",
    "connectInfo" : [{
    "title":"test",
    "description":"test"
    },{
    "title":"test",
    "description":"test"
    },{
    "title":"date",
    "description":"test"
    },{
    "title":"test",
    "description":"test"
    }]}


    혹시 그냥 file 자리에 위의 내용이 들어있는 파일을 넣어서

    $ source file
    

    라고 하면 안 되나요? 저 파일 자체가 Shell Script 문법 형식인 것 같아서요

    0
  • rezigrene
    1k
    2018-09-27 21:29:39

    이게 원하시는 방법인지는 모르겠으나..


    검색어

    shell script regex


    https://stackoverflow.com/questions/19737675/shell-script-how-to-extract-string-using-regular-expressions

    0
  • 기계인간
    45
    2018-09-28 07:53:24 작성 2018-09-28 07:54:40 수정됨

    올려주신 텍스트를 test.txt라는 파일로 저장한 다음, 아래와 같이 실행하였습니다.

    ```

    csplit test.txt $(cat test.txt | grep -n -e 'jandis' | cut -d ':' -f 1)

    ```

    결과는 xx00, xx01 두 개 파일로 쪼개져 저장됩니다.

    0
  • rrerer
    335
    2018-09-28 12:07:05

    jjmean2 각 json을 파일을 따로 취급하면 진행이 가능하나 현재 그 방향으로는 진행할 수 없어서 방법을 찾고 있습니다.


    rezigrene 해당 방법으로는 이미 알아봤지만 아무리 해도 저 문자열 사이의 \n 공백을 잡아낼수가 없더라고요..

    기계인간  가장 저의 질문에 대한 해답으로 가까웠습니다 잘 해결해보겠습니다 감사합니다 :)

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