3

DB にインポートするために設定しようとしているテキスト ファイルがあります。行の特定の位置の後の各行のすべてを削除する必要があります。また、各行の複数の固定位置にカンマを挿入する必要があります。最終目標は、DB にインポートする csv ファイルです。

位置による削除を挿入するための正規表現またはVIMコマンドがあると思いますが、私は両方に非常に慣れておらず、私の検索では良い答えが得られませんでした。

4

1 に答える 1

9

Vim には、列 23 で一致する特別な正規表現アトムがあります。\%23cその前後で一致することもできます。 を参照してください:help /\%c:substitute115 番目の位置以降のすべての文字を削除します。

:%s/\%>115c.*//

10、20、30 の位置にコンマを挿入します。

:%s/\%10c\|\%20c\|\%30c/,/g

これは、一致自体がゼロ幅であるため機能します。つまり、その位置の文字を消費しません。そのためには、 のようなものを追加する必要があります.

\%cアトムは文字 (正確にはバイト数) で機能することに注意してください。マルチバイト文字や全角文字、タブなどを適切に処理するには、画面幅に基づいたほうがよいでしょう:\%vはアトムです。

于 2013-08-08T19:04:58.407 に答える