2013-02-07 2 views
0

vim을 사용하여 일부 .scc 파일을 일괄 수정하려고하고 대체 스팅을 전달해야합니다.배쉬 셸 확장 다중화 문제

나는이 라인 ":s/\r/\r/g"

나는 따옴표 안에 변수로 개별 문자를 삽입 시도했습니다

그러나 그것을 엉망으로 \r에게 전달하는 vim -E를 사용하는 것을 시도하고있다.

모든 조언을 주시면 감사하겠습니다.

+4

'\ r'을'\ r'으로 대체하려고합니까? –

+2

[XY 문제] (http://meta.stackexchange.com/q/66377/172535)의 가능한 인스턴스처럼 들립니다. 당신이 실제로하려고하는 것은 무엇입니까? – ruakh

+0

또한 적용 할 필요가 있기 때문에 다음 패스에서 vim을 사용해야합니다 : 파일에 fileformat = dos 설정 – user2051964

답변

1

일회용 변경처럼 들리지 않으므로 실제로 원하는대로 추측하십시오. 다음은 모두 \r을 제거합니다.


참고 그것은 인플레 이스 편집 않는다 - 당신이 하나의 \r로 교체하려는 경우 등


perl -i.bak -p -e 's/\r+//g' filename(s)... 

를 리디렉션 할 필요

perl -i.bak -p -e 's/\r+/\r/g' filename(s)... 

Perl은 백업을 유지할 것이지만 그렇게해야합니다.

vim을 사용하고 있지 않지만 원하지 않아야합니다.

0

Vim에서는 검색 부분에 \n을, 교체 부분에 \r을 사용해야합니다. 하지만 \n\r으로 바꾸는 것은 나에게 아무런 성과가없는 것처럼 들립니다.

어쨌든 대체를 위해 Vim을 시작하는 것은 아마도 약간 너무 어려울 것입니다. 당신은 sed을 사용할 수

$ sed -i.orig 's/foo/bar/' foo.txt 

읽기 $ man sed 더 많은 정보를 원하시면.

+0

문제는 Mac에서 PC가 아마도 미친 파일을 얻는 것이며 \ r은 캐리지 리턴을 나타냅니다. 그들은 제대로 포맷되지 않았습니다 PC는 "^ M"과 함께 한 줄로 파일을 읽습니다 어디 반환해야합니다. 그것은^M을 무시하고 있다고 생각 sed와 문제. – user2051964

0

알아 들었어. ': s/\\ r/\\ r/g'

방금 ​​적절한 수준의 인용이 필요했습니다. 내가 이전에 언급 한 문제는 Mac에서 가정 한 PC 이중 줄 바꿈이 포함 된 파일을 얻고 PC가 제대로 읽을 수 없다는 것입니다.

그래서 sed를 s/\ r/\ r \ n/g에 사용하는 것은 어떤 이유로 인해 실제로 작동하지 않았으며 아마도 더 많이 탐색 할 수있었습니다. 그러나 나는 이것을 vim에 넘기는 것이 도움이 될 것이라고 생각합니다. vim을 사용하여 파일에 format = dos를 설정해야합니다.

감사합니다.