[linux] 주어진 텍스트 파일에서 모든 공백을 제거하는 방법

주어진 텍스트 파일에서 모든 공백을 제거하고 싶습니다. 이에 사용할 수있는 셸 명령이 있습니까? 또는 sed이 목적 으로 사용하는 방법 .

나는 아래와 같은 것을 원한다.

$ cat hello.txt | sed ….

나는 이것을 시도했다 : cat hello.txt | sed 's/ //g'. 그러나 그것은 탭이 아닌 공백 만 제거합니다.



답변

$ man tr
NAME
    tr - translate or delete characters

SYNOPSIS
    tr [OPTION]... SET1 [SET2]

DESCRIPTION
   Translate, squeeze, and/or delete characters from standard
   input, writing to standard output.

줄 바꿈을 포함하여 모든 공백을 지우려면 다음을 시도하십시오.

cat file.txt | tr -d " \t\n\r"

tr ( htompkins 주석에 대한 크레딧)에 정의 된 문자 클래스를 사용할 수도 있습니다 .

cat file.txt | tr -d "[:space:]"

예를 들어 수평 공백 만 지우려면 다음을 수행하십시오.

cat file.txt | tr -d "[:blank:]"


답변

내 의견보다 훨씬 간단합니다.

sed -r 's/\s+//g' filename


답변

다른 줄로 변경하는 것과 같은 정보를 잃지 않고 공간을 지우려면 sed를 사용할 수 있다고 생각합니다.

cat hello.txt | sed '/^$/d;s/[[:blank:]]//g'


답변

이 시도:

sed -e 's/[\t ]//g;/^$/d'

( 여기 에서 찾았 습니다 )

첫 번째 부분은 모든 탭 ( \t)과 공백을 제거하고 두 번째 부분은 모든 빈 줄을 제거합니다.


답변

모든 공백, 심지어 개행 을 제거하려면 :

perl -pe 's/\s+//g' file


답변

나를위한 가장 쉬운 방법->

        echo "Hello my name is Donald" | sed  s/\ //g


답변

이것은 아마도 가장 간단한 방법 일 것입니다.

sed -r 's/\s+//g' filename > output
mv ouput filename