awk 또는 sed를 사용하여 행을 열로 변환하는 방법

awk 또는 sed를 사용하여 행을 열로 변환하는 방법

파일을 옮겨야 합니다.

입력 파일:

1/1/1111
1
2
3
4

2/2/2222
5
6
7
8

산출:

1/1/1111 1 2 3 4
2/2/2222 5 6 7 8

답변1

xargs는 어떻습니까?

 xargs -n5 < input_file

아니면 어이

awk '{a=(NR%6==0)?"":a$0" ";if(NR%6==5)print a}' inp

답변2

존재하다perl

perl -lp00e 's/\n/ /g' your_file

설명하다

  • l: 처리 중인 현재 레코드에서 입력 레코드 구분 기호를 제거하고 인쇄된 각 줄 뒤에 현재 출력 레코드 구분 기호(기본값은 개행)를 추가합니다.
  • -p: 파일 레코드를 레코드별로 연산하고, 처리 후 현재 레코드를 인쇄합니다.
  • -00: 레코드 구분 기호가 2개 이상임을 나타냅니다.계속해서개행 문자
  • -e$_: 파일에서 현재 읽어온 레코드를 기본 변수( )로 설정 하면서 다음 문자열을 코드로 실행합니다 .
  • s/\n/ /g: 현재 레코드에서 발견된 모든 개행 문자를 공백으로 바꿉니다( g수정자는 대체가 "전역"인지 확인).

답변3

그리고 sed:

$ sed -e '
  :1
  $!N
  /\n$/{
    P
    d
  }
  s/\n/ /
  t1
' <file

답변4

동일한 형식입니까(예: 블록당 6줄)? 그렇다면 paste가장 간단한 방법은 다음과 같습니다(예: 대시 6개).

paste - - - - - - < file

탭 대신 공백이 필요한 경우 다음을 추가하세요.-d' '

관련 정보