토큰으로 구분 된 줄을 병합하려면 Sed

먹구름

sed를 사용하여 텍스트 파일의 줄을 처리하여 샘플 문서를 생성하는 스크립트를 작성하려고합니다. 대부분의 스크립트가 작동하지만 가장자리 케이스가 하나 붙어 있습니다. 다음 파일을 고려하십시오.

line-1
line-2, part2
line-3-should-be-a-very-long,
    line-3-continued
line-4

문제는 전부는 아니지만 일부 줄이 특수 토큰으로 끝납니다 (쉼표로 나타남). 토큰은 하나의 긴 줄을 생성하기 위해 줄을 다음 줄과 연결해야 함을 나타냅니다.

따라서 내 예 line-3-should-be-a-very-long,에서는와 연결하여 line-3-continued나에게 제공 line-3-should-be-a-very-long, line-3-continued해야합니다 (쉼표를 유지하고 싶습니다). 행 끝에없는 쉼표가 포함되어 있더라도 행 2에는 특별한 조치가 없습니다.

처리의 나머지 부분은 몇 배관에 의해 수행 sedgrepsed를 솔루션이 잘 맞는 것, 그래서 함께 명령을.

Kusalananda
$ sed '/,$/{N;s/\n//;}' file
line-1
line-2
line-3-should-be-a-very-long,    line-3-continued
line-4

공백을 삭제해야하는 경우 :

$ sed '/,$/{N;s/\n[[:blank:]]*//;}' file
line-1
line-2
line-3-should-be-a-very-long,line-3-continued
line-4

(줄 사이에 공백을 하나만 남기 //려면 코드에서로 대체하십시오 / /)

다음과 같이 행을 여러 번 계속할 수있는 경우

line-1
line-2
line-3-should-be-a-very-long,
    line-3-continued,
        line-3-continued-further
line-4

그때,

$ sed '/,$/{:loop;N;s/\n[[:blank:]]*//;/,$/bloop;}' file
line-1
line-2
line-3-should-be-a-very-long,line-3-continued,line-3-continued-further
line-4

이 마지막 sed스크립트는 주석으로 설명되었습니다.

/,$/{                     # if the current line ends with a comma, then...
    :loop                 # define label "loop"
    N                     # append next line from input (a newline will be inserted in-between)
    s/\n[[:blank:]]*//    # delete that newline and any blanks (tabs or spaces) directly after it
    /,$/bloop             # if the line now ends with comma, branch to the "loop" label
}
# implicit output of (possibly) modified line at end

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

탭으로 구분 된 파일을 병합하려면 어떻게합니까?

분류에서Dev

sed를 사용하여 빈 줄로 구분 된 파일 섹션의 특정 줄을 인쇄하는 방법

분류에서Dev

중복 줄을 쉼표로 구분 된 한 줄로 병합하는 방법

분류에서Dev

bash에서 awk 또는 sed를 사용하여 탭으로 구분 된 텍스트 파일의 줄 끝에 계산 된 출력을 추가하려면 어떻게해야합니까?

분류에서Dev

자바 토큰 화 : 밑줄로 구분 된 모든 것을 하나의 단어로 취급

분류에서Dev

한 줄로 구분 된 항목을 숫자로 정렬하려면 어떻게해야합니까?

분류에서Dev

CR로 구분 된 문자열을 여러 줄로 분할하고 각 새 줄에 ID를 추가하려면 어떻게해야합니까?

분류에서Dev

목록을 사용하여 큰 탭으로 구분 된 파일에서 줄 추출

분류에서Dev

목록을 사용하여 큰 탭으로 구분 된 파일에서 줄 추출

분류에서Dev

쉼표로 구분 된 값으로 줄을 분할하는 Bash split 명령

분류에서Dev

sed 또는 awk를 사용하여 패턴별로 문자열을 토큰으로 분할하는 방법

분류에서Dev

공백으로 구분 된 문자열을 여러 변수로 분리하려면 어떻게합니까?

분류에서Dev

REGEX-연속 된 줄에 탭으로 구분 된 3 개의 작품을 선택 / 표시하려면 어떻게해야합니까?

분류에서Dev

새 줄로 구분 된 파일을 구문 분석하는 awk 명령

분류에서Dev

C 줄 바꿈을 사용하여 쉼표로 구분 된 값 구문 분석

분류에서Dev

CMD를 사용하여 여러 텍스트 파일을 병합하고 줄 바꿈으로 구분하려면 어떻게해야합니까?

분류에서Dev

여러 줄을 한 줄로 병합하는 방법이지만 빈 줄로 구분 된 줄 블록에만 해당

분류에서Dev

여러 줄 정규식을 사용하여 sed 또는 grep으로 TOML의 작은 부분 만 구문 분석

분류에서Dev

\로 구분 된 여러 줄을 연결하는 방법

분류에서Dev

값이 줄로 구분 된 JSON을 디코딩하는 방법

분류에서Dev

밑줄로 구분 된 값을 분할하고 SUM을 계산하는 JavaScript

분류에서Dev

TFS에서 부분적으로 병합 된 변경 집합을 해결하려면 어떻게해야합니까?

분류에서Dev

Awk / grep / sed는 텍스트 줄에서 쉼표로 구분 된 숫자 목록을 가져옵니다.

분류에서Dev

쉼표로 구분 된 값을 별도의 줄에 입력하는 명령 줄

분류에서Dev

JSON에서 공백으로 구분 된 문자열을 생성하려면 어떻게해야합니까?

분류에서Dev

분기를 다시 작성된 기록으로 리베이스 할 때 가짜 병합 충돌을 피하려면 어떻게해야합니까?

분류에서Dev

/ bin / sh에서 새 줄로 구분 된 문자열을 분할하는 방법

분류에서Dev

한 열에 여러 열을 병합하고 '-'로 구분하려면 어떻게해야합니까?

분류에서Dev

,로 구분 된 하나의 파일에서 SED 전환 열

Related 관련 기사

  1. 1

    탭으로 구분 된 파일을 병합하려면 어떻게합니까?

  2. 2

    sed를 사용하여 빈 줄로 구분 된 파일 섹션의 특정 줄을 인쇄하는 방법

  3. 3

    중복 줄을 쉼표로 구분 된 한 줄로 병합하는 방법

  4. 4

    bash에서 awk 또는 sed를 사용하여 탭으로 구분 된 텍스트 파일의 줄 끝에 계산 된 출력을 추가하려면 어떻게해야합니까?

  5. 5

    자바 토큰 화 : 밑줄로 구분 된 모든 것을 하나의 단어로 취급

  6. 6

    한 줄로 구분 된 항목을 숫자로 정렬하려면 어떻게해야합니까?

  7. 7

    CR로 구분 된 문자열을 여러 줄로 분할하고 각 새 줄에 ID를 추가하려면 어떻게해야합니까?

  8. 8

    목록을 사용하여 큰 탭으로 구분 된 파일에서 줄 추출

  9. 9

    목록을 사용하여 큰 탭으로 구분 된 파일에서 줄 추출

  10. 10

    쉼표로 구분 된 값으로 줄을 분할하는 Bash split 명령

  11. 11

    sed 또는 awk를 사용하여 패턴별로 문자열을 토큰으로 분할하는 방법

  12. 12

    공백으로 구분 된 문자열을 여러 변수로 분리하려면 어떻게합니까?

  13. 13

    REGEX-연속 된 줄에 탭으로 구분 된 3 개의 작품을 선택 / 표시하려면 어떻게해야합니까?

  14. 14

    새 줄로 구분 된 파일을 구문 분석하는 awk 명령

  15. 15

    C 줄 바꿈을 사용하여 쉼표로 구분 된 값 구문 분석

  16. 16

    CMD를 사용하여 여러 텍스트 파일을 병합하고 줄 바꿈으로 구분하려면 어떻게해야합니까?

  17. 17

    여러 줄을 한 줄로 병합하는 방법이지만 빈 줄로 구분 된 줄 블록에만 해당

  18. 18

    여러 줄 정규식을 사용하여 sed 또는 grep으로 TOML의 작은 부분 만 구문 분석

  19. 19

    \로 구분 된 여러 줄을 연결하는 방법

  20. 20

    값이 줄로 구분 된 JSON을 디코딩하는 방법

  21. 21

    밑줄로 구분 된 값을 분할하고 SUM을 계산하는 JavaScript

  22. 22

    TFS에서 부분적으로 병합 된 변경 집합을 해결하려면 어떻게해야합니까?

  23. 23

    Awk / grep / sed는 텍스트 줄에서 쉼표로 구분 된 숫자 목록을 가져옵니다.

  24. 24

    쉼표로 구분 된 값을 별도의 줄에 입력하는 명령 줄

  25. 25

    JSON에서 공백으로 구분 된 문자열을 생성하려면 어떻게해야합니까?

  26. 26

    분기를 다시 작성된 기록으로 리베이스 할 때 가짜 병합 충돌을 피하려면 어떻게해야합니까?

  27. 27

    / bin / sh에서 새 줄로 구분 된 문자열을 분할하는 방법

  28. 28

    한 열에 여러 열을 병합하고 '-'로 구분하려면 어떻게해야합니까?

  29. 29

    ,로 구분 된 하나의 파일에서 SED 전환 열

뜨겁다태그

보관