2

Notepad++ または UltraEdit を使用して、ファイルの最初の 1 列または 2 列をコピーし、最後に追加する方法について質問があります。私のファイルに通常の列があれば問題は簡単ですが、そうではありません。これは次のようになります。

18,-8 22 30.82,70 2 34.25,
19,-8 23 10,70 1 42.97,
20,-8 23 40.42,700 51.85,
21,-8 24 10.1,70 0 0.89,
22,-8 24 40.05,69 59 10.09,
...
1318,-7 27 26.82,78 3 16.1,

ID 番号を各行の末尾にコピーしたいと思います。置換ツールを試しましたが、行頭をキャッチするための正しい式が見つかりませんでした。

4

4 に答える 4

1

Notepad ++を使用した1つの可能な解決策

列がコンマで区切られていると仮定します,:

次の手順を実行するマクロを記録できます。

  • Home/キーを押しPos1て、キャレットを現在の行の最初の位置に設定します
  • 2回検索し,ます(または、行末にコピーする必要がある列の数
  • Shift+を押しHomeて、行頭からキャレットの位置までのテキストを選択します
  • Ctrl+を押して選択したテキストをコピーしますC
  • 押すEndと、キャレットが現在の行の末尾に設定されます
  • Ctrl+を押して、コピーしたテキストを行末に貼り付けますV
  • (下矢印)を押して、キャレットを次の行に移動します。

ファイルの最後に到達するまでマクロを実行します。

PS: マクロを実行する前に、必ずデータをバックアップしてください!

于 2014-07-29T13:38:13.063 に答える
1

正規表現検索および置換モードで次のことを試してください。

探す: ^([0-9]*)(.*)$

交換: \1\2\1

説明

^$は、それぞれ行頭と行末のアンカーです。

^([0-9]*)行の先頭から数字以外 (この場合はコンマ) に一致するまで一致します。()を使用して、一致した式を [置換] ボックスで使用できるようにします \1

(.*)$行の終わりまで、他のすべてに一致します。繰り返しますが、角かっこは一致した式にアクセスできるようにします。今回は\2.

したがって、行末の最初の列のコピーが必要なため、次のようにするだけです。

交換:\1\2\1

代わりに、最初の列を最後に移動したい場合は、次のようにすることができます

探す:^([0-9]*),(.*)$

交換: \2\1

検索式にカンマが追加されていることに注意してください。それがないと、データの最初の列の後のコンマが(.*)式の一部として一致するため、行が に置き換えられたときに行の先頭に残ります\2\1

編集おっと、他の人は(基本的に)同じ答えで私を打ち負かしましたが、それでも説明が役立つことを願っています.

于 2014-07-29T13:55:34.717 に答える
0

何を見つける:^([0-9]*)(.*)

と置換する:\2\1

スクリーンショット

これがあなたに役立つことを願っています。

于 2014-07-29T13:47:32.357 に答える
0

メモ帳++で:

置換ダイアログを開きます: 検索 -> 置換...

最初のフィールドを最後にコピーするには:

Find what: ^([0-9]+,)(.*)$
Replace with: \1\2\1

最初のフィールドを最後に移動するには:

Find what: ^([0-9]+,)(.*)$
Replace with: \2\1
于 2014-07-29T13:49:12.520 に答える