파일 행에서 열로의 변환

파일 행에서 열로의 변환

파일이 있다고 가정해 보겠습니다.

파일 1:

PAPER  TEAM  MANISH NISHA GARIMA JYOUTI ........etc 

파일 2 내가 원하는 것:

PAPER    
TEAM
MANISH
NISHA
GARIMA    
JYOUTI

File1의 행에서 열로의 변환.

답변1

tr반복되는 각 공백 문자( )를 단일 개행 문자( )로 바꾸는 데 사용합니다 \n.

tr -s ' '  '\n'< infile > outfile

그런데 당신도 이런 걸 원하는 것 같은데요?

원래 바꾸어 놓다
0 1 2 3 
bcd
# $ @ %

0a # 
1b $
2c @
3d %

우리는 할 수있어 awk:

awk '{ for (i=1; i<=NF; i++) RtoC[i]= (i in RtoC?RtoC[i] OFS :"") $i; } 
    END{ for (i=1; i<=NF; i++) print RtoC[i] }' infile

이는 각각의 동일한 필드 번호 위치를 연결하고 END결과(예: 첫 번째 열의 첫 번째 행, 두 번째 열의 두 번째 행 등)를 인쇄합니다. 물론 입력 파일은 메모리 크기로 제한됩니다.

답변2

다음 명령을 사용할 수도 있습니다 fmt.

~$ cat f
PAPER  TEAM  MANISH NISHA GARIMA JYOUTI
~$ fmt -1 f
PAPER
TEAM
MANISH
NISHA
GARIMA
JYOUTI

답변3

그리고GNU 데이터 혼합:

$ datamash -W transpose <file
PAPER
TEAM
MANISH
NISHA
GARIMA
JYOUTI

답변4

다음을 사용하여 awk출력 필드 구분 기호( OFS)를 레코드(행) 구분 기호( RS) 로 설정합니다.

awk '{OFS=RS;$1=$1}1' file > file2

관련 정보