파일의 행에서 열로 변환 NISHA GARIMA JYOUTI ……..etc File2 내가

파일이 있다고 가정합니다.

파일 1 :

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

File2 내가 원하는 :

PAPER    
TEAM
MANISH
NISHA
GARIMA    
JYOUTI

File1의 행에서 열로 변환



답변

를 사용하여 tr반복되는 각 공백 문자 ( )를 단일 줄 바꿈 ( \n) 문자로 바꿉니다.

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

그러나 나는 당신이 이런 것을 원한다고 생각합니까?

12 34 1 a #
abcd-> 2 b $
# $ @ % 3 c @
                4 일 %

로에게 awk우리가 할 수있는 :

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

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


답변

grep을 통해 간단히 할 수 있습니다. 기본적으로 grep은 일치하는 내용을 별도의 줄 바꿈으로 인쇄합니다.

grep -oP '\S+' infile > outfile

또는

grep -o '[^[:space:]]\+' infile > outfile


답변

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

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


답변

GNU의 datamash :

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


답변

다음을 사용하여이 작업을 수행 할 수도 있습니다 sed.

$ sed -e 's/  */\n/g' file1 > file2

참고 : 단어에 공백이 포함 된 상황은 처리하지 않습니다.


답변

을 사용 awk하여 출력 필드 구분 기호 ( OFS)를 레코드 (행) 구분 기호 ( RS)로 설정하십시오.

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


답변

for루프 사용하기 :

for val in `cat file1` ; do echo $val >> file2; done;