[linux] 텍스트 파일에서 줄 바꿈을 어떻게 제거합니까?
다음 데이터가 있으며 모든 데이터를 한 줄에 입력해야합니다.
나는 이것을 가지고있다:
22791
;
14336
;
22821
;
34653
;
21491
;
25522
;
33238
;
나는 이것이 필요합니다 :
22791;14336;22821;34653;21491;25522;33238;
편집하다
이 명령 중 어느 것도 완벽하게 작동하지 않습니다.
대부분의 데이터는 다음과 같이 표시됩니다.
22791
;14336
;22821
;34653
;21491
;25522
답변
tr -d '\n' < yourfile.txt
편집하다:
여기에 게시 된 명령이 작동하지 않는 경우 필드를 구분하는 줄 바꿈 외에 다른 것이있는 것입니다. 파일에 DOS / Windows 줄 끝이있을 수 있습니다 (이 경우에도 Perl 솔루션이 작동 할 것으로 예상하지만)?
시험:
tr -d "\n\r" < yourfile.txt
그래도 작동하지 않으면 파일을 더 면밀히 검사하여 (예 : 16 진수 편집기에서) 제거 할 문자가 실제로 있는지 찾아야합니다.
답변
perl -p -i -e 's/\R//g;' filename
일을해야합니다.
답변
paste -sd "" file.txt
답변
tr -d '\n' < file.txt
또는
awk '{ printf "%s", $0 }' file.txt
또는
sed ':a;N;$!ba;s/\n//g' file.txt
이 페이지는 여기 제거 줄 바꿈에 다른 방법의 무리가 있습니다.
고양이 학대를 제거하기 위해 편집 🙂
답변
사용하다
head -n 1 filename | od -c
불쾌한 캐릭터가 무엇인지 파악합니다. 그런 다음 사용
tr -d '\n' <filename
LF 용
tr -d '\r\n' <filename
CRLF 용
답변
vim에서 파일을 편집 할 수 있습니다.
$ vim inputfile
:%s/\n//g
답변
man 1 ed 사용 :
# cf. http://wiki.bash-hackers.org/doku.php?id=howto:edit-ed
ed -s file <<< $'1,$j\n,p' # print to stdout
ed -s file <<< $'1,$j\nwq' # in-place edit