여러 행의 한 열을 하나의 행으로 변환하고 싶습니다.
예:
1
1
1
1
1
2
2
2
3
3
4
그리고 나는 원한다:
11111222334
어떤 제안이 있으십니까?
답변1
반죽:
$ paste -s -d "" file
11111222334
구분 기호 없이 모든 줄을 함께 압축합니다.
또는 이러한 솔루션은 후행 개행 문자도 제거합니다.
perl -pe chomp file
awk -v ORS="" 1 file
답변2
다음을 사용하여 모든 개행 문자를 제거할 수 있습니다 tr
.
tr -d \\n <infile
출력에는 후행 줄 바꿈이 없으므로 필요한 경우(예: 다른 파일로 리디렉션):
{ tr -d \\n <infile; printf \\n; } >outfile
반대로 필드를 공백으로 구분해야 하는 경우 다음을 실행할 수 있습니다.
row=$(tr \\n \ <infile)
printf %s\\n "${row%?}" >outfile
하지만paste
여기 진짜 빛난다...
답변3
명령을 에코하고 출력을 새 파일로 보낼 수도 있습니다.
$ echo $(cat file) >> rows.txt
각 줄 사이의 공백을 방지하려면 같은 줄에 sed를 사용할 수 있습니다.
$ echo $(cat file) | sed 's/ //g' >> rows.txt