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

Boogeyman

여러 줄을 단일 줄로 병합하려고하지만 추가 조건이 있습니다.

내 입력 파일은 다음과 같습니다.

Dm1*(  stuff1 + stuff2 -
stuff3 + stuff4)

+ D1*(D1stuff1 + D1sstuff2 + D1stuff3 + D1stuff4 +
  D1stuff5 - 
  D1stuff6 )

+ D2*(D2stuff)

따라서 빈 줄로 구분되는 여러 줄이 있습니다. 모두 *stuff*괄호를 포함 할 수있는 길고 복잡한 표현식을 포함합니다.

빈 줄을 그대로 유지하고 다른 여러 줄을 병합하고 싶습니다.

예상 출력은 다음과 같습니다.

Dm1*(  stuff1 + stuff2 - stuff3 + stuff4)

+ D1*(D1stuff1 + D1sstuff2 + D1stuff3 + D1stuff4 + D1stuff5 - D1stuff6 )

+ D2*(D2stuff)

현재의 모든 시도는

awk '{printf("%s",$0)}' 

모든 것을 한 줄에 넣으십시오. 줄을 반복해야합니까, 아니면 빈 줄 사이의 블록을 식별하고 거기에 무언가를 적용하는 방법이 있습니까?

kvantour

John1024 버전보다 조금 더 짧습니다.

awk 'BEGIN { RS=""; ORS="\n\n"}{$1=$1}1'

또는

awk -v RS="" -v ORS="\n\n" '{$1=$1}1'

using을 사용하면 RS=""awk가 모든 단락을 레코드 (즉, 빈 줄로 구분 된 텍스트 블록)로 사용하도록 지시합니다. 그러나 그것은 또한 awk에게 <newline>이 항상 FS. 출력 레코드 구분 기호 ORS를 재정의하면 awk에게 $0첫 번째 레코드를 재설정하여 레코드를 재정의하도록 지시하여 원하는대로 모든 것을 출력 할 수 있습니다 $1=$1. 이는 FS(여기서 기본값)로 정의 된 모든 필드 구분 기호 와 (로 인해 RS="") 줄 바꿈 OFS(기본값 : <space;>) 로 대체되는 효과가 있습니다. 마지막으로 레코드를 인쇄합니다.1

추가로 설정하면 모든 공간을 없앨 수 있습니다. OFS=""

RS문자열 값의 첫 번째 문자 RS는 입력 레코드 구분 기호입니다. 기본적으로 <newline>. RS개 이상의 문자가 포함 된 경우 결과가 지정되지 않습니다. 경우 RS이며 null, 다음 기록은 선행 또는 빈 줄이 입력의 시작이나 끝 부분에 빈 레코드가 생성되지된다 후행하는 <개행 문자>를 구성 시퀀스 더하기 하나 이상의 공백 행으로 분리하고, <줄 바꿈> 항상한다 값이 무엇이든 상관없이 필드 구분자 FS입니다.

출처 : POSIX awk 표준

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

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

분류에서Dev

여러 줄 목록에서 쉼표로 구분 된 한 줄의 여러 단어를 변환하는 방법

분류에서Dev

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

분류에서Dev

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

분류에서Dev

이전 줄이 백 슬래시로 끝나는 경우에만 여러 줄을 한 줄로 병합하는 방법은 무엇입니까?

분류에서Dev

빈 줄로 구분 된 열에서 줄을 추출하는 방법은 무엇입니까?

분류에서Dev

한 줄을 여러 줄로 분할, 입력 파일의 모든 줄에 대해 새 줄 문자 누락

분류에서Dev

C ++ : 분할 된 로그 구문 분석하지만 하나의 항목에 여러 줄이있을 수 있음

분류에서Dev

구분 기호를 사용하여 두 줄을 한 줄로 감싸는 방법

분류에서Dev

구분 기호를 사용하여 두 줄을 한 줄로 감싸는 방법

분류에서Dev

C #에서 한 줄로 입력 된 여러 문자열 목록을 분리하는 방법

분류에서Dev

Powershell-한 줄을 여러 줄로 분할하는 SLS (Select String)

분류에서Dev

줄을 한 줄로 병합

분류에서Dev

여러 줄을 한 줄로 변환하지만 단락을 유지하는 방법

분류에서Dev

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

분류에서Dev

Powershell 5.1은 특정 키에 대한 json을 구문 분석하고 해당 값을 줄로 구분 된 텍스트로 새 .txt 파일에 기록합니다.

분류에서Dev

한 줄의 두 번째 열을 분할하여 bash oneliner로 여러 줄 만들기

분류에서Dev

여러 개의 빈 줄을 특정 빈 줄이 아닌 줄로 바꾸는 방법은 무엇입니까?

분류에서Dev

Bash : 여러 줄을 한 줄 명령으로 구문 분석

분류에서Dev

vim / sed에서 여러 빈 줄을 하나의 빈 줄로 바꾸기

분류에서Dev

필드 구분자를 빈 줄로 사용하고 구분 기호와 이중 빈 줄을 awk로 기록하는 방법

분류에서Dev

mySQL에 저장된 줄 바꿈을 한 줄로 변환하는 방법

분류에서Dev

빈 줄로 구분 된 그룹 가입

분류에서Dev

Ansible win_shell에 여러 줄로 된 명령을 해석하지 않도록 지시하는 방법

분류에서Dev

파이썬에서 줄임표 (...)로 구분 된 연속 줄을 연결하는 방법

분류에서Dev

rename 명령을 사용하여 마침표와 밑줄로 구분 된 유사한 문자열로 여러 파일의 이름을 바꾸는 방법

분류에서Dev

Bash의 텍스트 파일에서 한 줄을 여러 줄로 병합

분류에서Dev

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

분류에서Dev

sed를 사용하여 연속 된 여러 줄을 한 줄로 바꿉니다.

Related 관련 기사

  1. 1

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

  2. 2

    여러 줄 목록에서 쉼표로 구분 된 한 줄의 여러 단어를 변환하는 방법

  3. 3

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

  4. 4

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

  5. 5

    이전 줄이 백 슬래시로 끝나는 경우에만 여러 줄을 한 줄로 병합하는 방법은 무엇입니까?

  6. 6

    빈 줄로 구분 된 열에서 줄을 추출하는 방법은 무엇입니까?

  7. 7

    한 줄을 여러 줄로 분할, 입력 파일의 모든 줄에 대해 새 줄 문자 누락

  8. 8

    C ++ : 분할 된 로그 구문 분석하지만 하나의 항목에 여러 줄이있을 수 있음

  9. 9

    구분 기호를 사용하여 두 줄을 한 줄로 감싸는 방법

  10. 10

    구분 기호를 사용하여 두 줄을 한 줄로 감싸는 방법

  11. 11

    C #에서 한 줄로 입력 된 여러 문자열 목록을 분리하는 방법

  12. 12

    Powershell-한 줄을 여러 줄로 분할하는 SLS (Select String)

  13. 13

    줄을 한 줄로 병합

  14. 14

    여러 줄을 한 줄로 변환하지만 단락을 유지하는 방법

  15. 15

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

  16. 16

    Powershell 5.1은 특정 키에 대한 json을 구문 분석하고 해당 값을 줄로 구분 된 텍스트로 새 .txt 파일에 기록합니다.

  17. 17

    한 줄의 두 번째 열을 분할하여 bash oneliner로 여러 줄 만들기

  18. 18

    여러 개의 빈 줄을 특정 빈 줄이 아닌 줄로 바꾸는 방법은 무엇입니까?

  19. 19

    Bash : 여러 줄을 한 줄 명령으로 구문 분석

  20. 20

    vim / sed에서 여러 빈 줄을 하나의 빈 줄로 바꾸기

  21. 21

    필드 구분자를 빈 줄로 사용하고 구분 기호와 이중 빈 줄을 awk로 기록하는 방법

  22. 22

    mySQL에 저장된 줄 바꿈을 한 줄로 변환하는 방법

  23. 23

    빈 줄로 구분 된 그룹 가입

  24. 24

    Ansible win_shell에 여러 줄로 된 명령을 해석하지 않도록 지시하는 방법

  25. 25

    파이썬에서 줄임표 (...)로 구분 된 연속 줄을 연결하는 방법

  26. 26

    rename 명령을 사용하여 마침표와 밑줄로 구분 된 유사한 문자열로 여러 파일의 이름을 바꾸는 방법

  27. 27

    Bash의 텍스트 파일에서 한 줄을 여러 줄로 병합

  28. 28

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

  29. 29

    sed를 사용하여 연속 된 여러 줄을 한 줄로 바꿉니다.

뜨겁다태그

보관