![단일 열 파일을 단일 행 파일로 변환하는 방법은 무엇입니까?](https://linux55.com/image/74082/%EB%8B%A8%EC%9D%BC%20%EC%97%B4%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20%EB%8B%A8%EC%9D%BC%20%ED%96%89%20%ED%8C%8C%EC%9D%BC%EB%A1%9C%20%EB%B3%80%ED%99%98%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
여러 행의 한 열을 하나의 행으로 변환하고 싶습니다.
예:
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