2012-05-18 2 views
1

Windows 디렉토리 위치를 Mac으로 변경하고 Finder 윈도우를 열어주는 자동화 서비스 용 bash 스크립트를 작성 중입니다. 공백이있는 폴더를 제외하고는 작동합니다. 나는 그 (것)들을 제거하기 위하여 안으로 끼워 넣었다 그러나 그것은 공간을 가진 아무거나에 아직도 작동하지 않을 것이다. 나는 어떤 종류의 문법 실수를 했음에 틀림 없다.sed를 사용하여 Mac 용 Windows 위치 변경

sed -e 's:\\\\fmg_cifs1\\Dept_Shares:/Volumes/Dept_Shares:' -e 's: :\ :g' -e 's:\\:/:g' | pbcopy 
TAG=$(pbpaste) 
cd $TAG; open . 

답변

2

이 거의 확실 당신이 모든 변경하는 것입니다 :

cd "$TAG" 

이 수정의 모든 것을 인용!

pbcopypbpaste과 변수? 조나단 지적

cd "$(sed -e 's:\\\\fmg_cifs1\\Dept_Shares:/Volumes/Dept_Shares:' -e 's: :\ :g' -e 's:\\:/:g')" 

sed 명령 중 일부는 필요하지 않습니다. 물론, 뭔가를 sed에게 먹일 필요가 있습니다.

cd "$(echo "$dir" | sed -e 's:\\\\fmg_cifs1\\Dept_Shares:/Volumes/Dept_Shares:')" 
+0

모두를 큰 따옴표로 묶는 경우에도 여전히 'sed'를 사용하여 공백 앞에 백 슬래시를 넣어야합니까? –

+0

@JonathanLeffler : 하나의 이스케이프 처리 된 공간은 관계없이 이스케이프 할 필요가 없습니다. 나는 심지어 그것을 알아 차리지 못했다. 'sed' 명령의 마지막 부분은 제거 될 수 있습니다 (교체가 필요한 다른 백 슬래시가없는 한). –

+0

@DennisWilliamson 고맙습니다. 그 자리 전체에서 따옴표를 시도했지만 이스케이프 문자를 사용했습니다. 실제 데이터가 아니라 위치에 $ TAG을 넣을 것이라고 생각했기 때문입니다. 내가 사용한 이유는 서비스가 하이라이트 된 텍스트를 입력으로 사용하기 때문입니다. 나는 아직도 bash에 꽤 새로 워서 대부분은 Mac에서 Windows 로의 기존 솔루션을 수정했다. – Sleepykrooks