2012-11-24 4 views
11

각 필드 사이의 공백을 쉼표 구분 기호로 바꾸고 싶습니다. 누군가 내가 어떻게이 작업을 수행 할 수 있는지 알려 주시겠습니까? 아래 명령을 시도했지만 작동하지 않습니다. 감사합니다. 당신에 대한 sed을 이야기하는 경우sed를 사용하여 쉼표로 공백을 바꾸는 방법은 무엇입니까?

My command: 
:%s//,/ 


53 51097 310780 1 
56 260 1925 1 
68 51282 278770 1 
77 46903 281485 1 
82 475 2600 1 
84 433 3395 1 
96 212 1545 1 
163 373819 1006375 1 
204 36917 117195 1 
+0

이 VIM입니까? 나는 어디에서나'sed'를 보지 못합니다. – tjameson

+0

그래, 그것은 vim 편집기 안에 있어요. – Teja

답변

18

이 작동 :

s/ /,/g 
+0

그는 그가 sim이 아니라 Vim을 사용하려는 것처럼 보입니다. – netpoetica

7

vim 내부, 당신이 때 정상에 입력합니다 : vim에서

sed -e "s/ /,/g" < a.txt 

은 대체 같은 정규식을 사용하여 (명령) 모드 :

:%s/ /,/g 
그것은을 수정할 것 같이 -i 옵션 sed에 수단 "현재 위치에서 편집"

sed -i 's/\ /,/g' input_file 

참고 : 10 터미널 프롬프트에

, 당신은 파일에서이 작업을 수행 할 수 sed을 사용할 수 있습니다 입력 파일.

+5

Max OSX를 사용하고 있다면'-i' 옵션에 인수가 필요합니다. 백업을 원하지 않으면 빈 문자열을 전달할 수 있습니다. – tripleee

+0

^고맙습니다. Mac에서이 명령을 고치는 동안 시간을 ​​보냈습니다. – Sean

2

나는 당신이 요구하는지 정확히하지 건 알지만, 개행 문자로 쉼표를 교체하기 위해,이 위대한 작품을 :

tr , '\n' < file 
1

다음 명령을 시도하고 당신을 위해 해결해야한다.

sed "s/\s/,/g" orignalFive.csv > editedFinal.csv 
0

당신은 다음 터미널에 출력을 원하는 경우,

$sed 's/ /,/g' filename.txt 

하지만 당신은 파일 자체 그런 다음 파일의 쉼표로 공간을 대체 할 경우,

을 편집하려면
$sed -i 's/ /,/g' filename.txt 
관련 문제