4

私は Vim に抵抗しましたが、今は屈服しました。Vim は、大きなファイルをバターを切るナイフのように処理します。

状況: 大きなテキスト ファイルがあり、各行の最初と最後にパイプ文字を入れたいと考えています。

問題: これらの Vim およびその他のバリエーションは機能しませんでした:

:%s/$/|\$|
:%s/\r/|\r|
:%s/$/|\r|

これを修正するのは簡単だと思いますが、Google と Stack を検索しても解決しませんでした。

4

2 に答える 2

6

あなたはほとんどそれを持っていました:

:%s/^\|$/|/g

^\|$行頭または行末を意味します。Vim 正規表現では、|「or」パイプがエスケープされます。/|/gその後に--replace with |globalが続きます。

于 2012-05-06T12:02:51.113 に答える
5

個人的には、「各行をパイプ文字で囲む」という表現力を好みます。

:%s/.*/|&|

これは、私の脳では、 「行頭または行末の存在しない架空の文字を置き換える」よりも直感的です。

^また、魔法の文字 ( , , $quotedの数が少ないことにも依存しますが、\|これらはすべてタイプするのが不器用でエラーが発生しやすいものです。これらのうち、vim の「魔法の設定」に依存しますか?))。|$\_$

上記はそれらのどれにも悩まされていません。

于 2012-05-06T19:58:19.577 に答える