중복된 공백(여러개)을 찾아 하나의 공백으로 바꾸고 싶습니다. 나는 시도했다:
sed -e 's/ []+/ /g' myfile.txt > myfile2.txt
그러면 빈 파일이 생성됩니다. 왜? 내 목표를 달성하는 방법은 무엇입니까?
답변1
명령이 잘못되었습니다. sed: -e expression #1, char 10: unterminated 's' command
표준 출력이 생성되지 않아 빈 파일이 있을 수 있습니다.
노력하다sed -e 's/ \+/ /g' myfile.txt > myfile2.txt
답변2
표준에서 sed
하나 이상의 SPC 문자를 검색하려면 구문은 다음과 같습니다.
sed 's/ \{1,\}/ /g'
또는
sed 's/ */ /g'
(별 앞에 공백이 두 개 있습니다.) 또는 더 읽기 쉽게 만들려면 다음을 수행하세요.
sed 's/[ ][ ]*/ /g'
-E
(확장 정규식의 경우) 표준에 추가 되면 (이는 다음 주요 POSIX 버전에서 발생해야 하며 많은 구현에서 이미 지원함) 다음을 수행할 수도 있습니다.
sed -E 's/ +/ /g'
일부 구현에서는 기본 정규식( 제외 )을 에 대한 별칭으로 이해할 sed
수도 있습니다 .\+
-E
\{1,\}
하지만 여기서는 직접 사용할 수 있습니다 tr
.
tr -s ' ' < file.in > file.out
도착하다에스공간을 꽉 쥐세요.