[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