텍스트 파일에서 줄 바꿈을 어떻게 제거합니까?
다음 데이터는 모든 데이터를 한 줄에 입력해야합니다.
나는 요구 가지고있다 :
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
괴상한 사실 : 대신 ASCII를 사용하십시오.
tr -d '\012' < filename.extension
(편집 된 원인은 동일한 솔루션을 가진 friggin '답변을 보지 못했으며 차이점은 ASCII가 있다는 것뿐이었습니다)
$ perl -0777 -pe 's / \ n + // g'입력> 출력
$ perl -0777 -pe 'tr / \ n // d'입력> 출력
데이터가 file.txt에있는 경우 :
echo $(<file.txt) | tr -d ' '
' $(<file.txt)
'는 파일을 읽고 내용을 일련의 단어로 제공하고 'echo'는 그 사이에 공백을두고 에코합니다. 그런 다음 'tr'명령은 모든 공백을 삭제합니다.
22791;14336;22821;34653;21491;25522;33238;
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
xargs
줄 바꿈도 사용합니다 (그러나 마지막 줄 바꿈을 추가합니다) :
xargs < file.txt | tr -d ' '
숫자와 세미콜론 만 유지하기를 원한다고 가정하면, 다음은 중요한 인코딩 문제가 없다고 가정하고 트릭을 수행해야하지만 마지막 "개행 문자"도 제거됩니다.
$ tr -cd ";0-9"
소수점, 쉼표 등을 유지하려는 경우 다른 문자를 포함하도록 위를 쉽게 수정할 수 있습니다.
gedit 텍스트 편집기 (3.18.3) 사용
- 검색 클릭
- 찾기 및 바꾸기 ...를 클릭합니다 .
- 입력
\n\s
으로 찾기 필드 - 남겨 교체하지 (아무) 빈
- 정규식 체크 박스
- 찾기 버튼을 클릭하십시오
참고 : 이것은 OP의 원래 7 년 된 문제를 정확히 해결하지는 못하지만 유사한 "내 텍스트를 한 줄에 모두 가져 오는 방법"질문을 통해 SE에서 여기로가는 길을 찾는 멍청한 리눅스 사용자 (나와 같은)를 도울 것입니다. .
오늘 같은 경우가 있었는데, vim 또는 nvim에서 매우 쉬웠으며 gJ
라인을 결합 하는 데 사용할 수 있습니다 . 사용 사례의 경우
99gJ
이것은 당신의 모든 99 라인에 합류합니다. 99
가입 할 라인 수에 따라 필요에 따라 번호 를 조정할 수 있습니다 . 다만 가입하면 1 개 라인을, 만 gJ
좋은 충분하다.
나는 awk로 할 것입니다.
awk '/[0-9]+/ { a = a $0 ";" } END { print a }' file.txt
(단점은 a가 메모리에 "누적"된다는 것입니다).
편집하다
printf를 잊어 버렸습니다! 그래서 또한
awk '/[0-9]+/ { printf "%s;", $0 }' file.txt
또는 아마도 awk를 사용하여 다른 ans에서 이미 주어진 것입니다.
나는 일반적으로 파일에서 코드 스 니펫을 복사하고 불필요한 새 줄을 추가하지 않고 콘솔에 붙여 넣고 싶을 때이 유스 케이스를 얻습니다 .bash 별칭을 사용하게되었습니다
( oneline
호기심이 있으면 호출했습니다 )
xsel -b -o | tr -d '\n' | tr -s ' ' | xsel -b -i
xsel -b -o
내 클립 보드를 읽습니다.tr -d '\n'
새 줄을 제거합니다.tr -s ' '
반복되는 공간을 제거합니다.xsel -b -i
이것을 내 클립 보드로 다시 푸시합니다.
그 후 클립 보드의 새 내용을 콘솔 등의 한 줄에 붙여 넣습니다.
특히 이상한 단어 줄 바꿈을 수정하기 위해 GUI에서이 작업을 수행해야 할 때 가장 분명하고 빠른 대답을 놓치고 있습니다.
열다
gedit
그런 다음 Ctrl+ H,
Find
텍스트 상자\n
와Replace with
빈 공간에넣은 다음 확인란
Regular expression
과 짜잔 을 채우십시오 .
POSIX 클래스 와 함께 sed 사용
공백 (공백 및 탭) 만 포함 된 모든 줄이 제거됩니다.
sed '/^[[:space:]]*$/d'
작업중인 모든 것을 가져 와서 파이프로 연결하십시오.
예
cat filename | sed '/^[[:space:]]*$/d'
파일 끝에서 후행 줄 바꿈도 제거하려면
python -c "s=open('filename','r').read();open('filename', 'w').write(s.replace('\n',''))"
참고 URL : https://stackoverflow.com/questions/3134791/how-do-i-remove-newlines-from-a-text-file
'IT' 카테고리의 다른 글
전체 HTML 요소를 덮도록 배경 이미지를 늘리려면 어떻게 처리합니까? (0) | 2020.09.15 |
---|---|
Android : 선택기에서 된 된 버튼의 textColor가 표시되지 않습니까? (0) | 2020.09.15 |
배치 확장 내에서 배치 확장을 어떻게 실행 가능합니까? (0) | 2020.09.15 |
방문자로부터 실제 IP를 얻는 방법은 무엇입니까? (0) | 2020.09.15 |
PHP에서 WSDL 캐시를 어떻게 지울 수 있습니까? (0) | 2020.09.15 |