주어진 텍스트 파일에서 모든 공백을 제거하고 싶습니다. 이에 사용할 수있는 셸 명령이 있습니까? 또는 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