0

vim を使用していくつかの .scc ファイルをバッチ修正しようとしており、それに置換文字列を渡す必要があります。

vim -Eこの行を渡すために使用しようとしています":s/\r/\r/g"

引用符内に個々の文字を変数として埋め込んでみましたが、\rめちゃくちゃです。

アドバイスをいただければ幸いです。

4

3 に答える 3

1

一度限りの変更のようには聞こえないので、本当にやりたいことを推測してください。以下は、すべての s を削除します\r


インプレース編集を行うことに注意 してください-リダイレクトなどの必要はありません.


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

\r単一のdoに置き換えたい場合

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

Perl はバックアップを保持しますが、そうする必要があります。

使用していませんが、おそらく使用しvimたくないはずです。

于 2013-02-07T19:19:24.887 に答える
0

\nVim では、検索部分と\r置換部分で使用する必要があります。しかし、に置き換えることは、私に何もしないよう\nに聞こえます。\r

いずれにせよ、代替のためだけに Vim を起動するのは、おそらく少し多すぎるでしょう。使用できますsed

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

詳細については、こちらをお読み$ man sedください。

于 2013-02-07T19:31:15.107 に答える
0

とった。':s/\\r/\\r/g'

適切なレベルの引用が必要でした。先ほど触れた問題は、Mac で作成されたと思われる PC の二重改行を含むファイルが取得され、PC では正しく読み取れないことです。

そのため、sed を s/\r/\r\n/g に使用しても、何らかの理由で実際には機能していませんでした。しかし、これらをvimに渡すと役立つと思います。vim を使用して :set format=dos をファイルに送信する必要があります。

皆さんありがとう。

于 2013-02-08T18:45:35.527 に答える