Notepad ++の最初の列の後のすべてを削除するにはどうすればよいですか?


40

Notepad ++の列の後のすべてを削除しようとしています。列モードはオプションではありません。出来ますか?

私が持っているもの:

70.97.110.40    159 ms          [n/a]                   21              
70.97.117.177   134 ms          [n/a]                   21              
70.97.120.10    75 ms           [n/a]                   21              
70.97.122.105   87 ms           www.portless.net        21              
70.97.122.106   89 ms           www.popovetsky.org      21              
70.97.122.107   95 ms           www.psmythe.net         21              
70.97.122.104   98 ms           wasabi.prostructure.com 21              
70.97.122.108   89 ms           crm.prostructure.com    21              
70.97.122.109   87 ms           internal.prostructure.com21 

私が欲しいもの:

70.97.110.40
70.97.117.177
70.97.120.10
70.97.122.105
70.97.122.106
70.97.122.107
70.97.122.104
70.97.122.108
70.97.122.109

2
列はタブで区切られていますか?
エクセル14

3
もう1つの質問:保持するデータにスペースが含まれますか?
エクセル14

1
いや、IPだけが必要
ボブJ 14

20
なぜnotepad ++でそれをしたいのですか?列モードがオプションではないのはなぜですか?
カミル14

1
列モードを使用してEOLの2番目の列を削除してから、Trim Trailing and saveを使用して空白を削除できます。
ケーシークーボール14

回答:


60

最初の列のデータにスペースが含まれない場合は、正規表現の検索と置換を使用して必要なものを取得できます。

正規表現モードでは、次を検索します:

^([^ ]*).*

で置き換える

\1

これが何をするか:

^は、一致が行の先頭から始まることを示します。
([^ ]*)スペースを含まない式です。一致は貪欲であるため、これは最初のスペース(または行の終わり、どちらか早い方)までのすべてに一致します。
.*ライン上の他のすべてです。

\1括弧内の一致部分を指します。つまり、行全体が最初の列のビットだけに置き換えられます。


5
notepad ++は検索置換で正規表現をサポートしていることを知ってうれしいです!
カミル14

1
データにスペースが含まれない限り、Regexがジョブを実行します。UNIXの「カット」コマンドの方が簡単ですが、WindowsでUNIXコマンドを実行するのはまったく別の問題です。これのためにカットが行われ、定義された列区切り文字または文字カウントを使用して大きなファイルをすばやく処理します。
カール14

31
これははるかに簡単に行うことができます: "。*"(先頭のスペースに注意)を ""(つまり何も)に置き換えて、最初のスペース以降のすべてを削除します。
Fraxtil

2
@Fraxtilありがとう。それを回答として投稿してください。あなたは私から賛成を得ます。
Excellll 14

@Excellllよし、できました。
Fraxtil

99

同じ効果を達成するために使用できる、より単純な正規表現を次に示します。交換

 .*

(先頭のスペースに注意してください)

何もありません。これにより、最初のスペース以降のすべてが削除されます。これは、IPアドレスの前に空白が付いていない限り機能します(この例のように)。


8
男は、正規表現は純粋な魔法です。私はそれを
理解する

14
フラグがであることを確認してください。改行の一致はオフです。
テミール14

3
場合、それは代わりに空白のタブが潜在的ですが、あなたは使用することができます[ \t].*
トウモロコシの茎

4
@Cornstalks \s.*はより短いです。を使用して\s+.*、任意の量の空白に一致させることもできますが、今は防御的にコーディングしています。
アンコ14

1
@ jpmc26「regex」と「simple」を一文で言わない限り:)
Torben Gundtofte-Bruun 14

39

Windowsを使用しており、末尾のスペースを気にしない場合(後で検索/置換できます)、ブロック選択機能を使用します。

  1. 押し続けるとAltキーを
  2. マウスを使用して、削除する部分(テキストブロック全体)を選択します
  3. Altキーを放します
  4. そのテキストブロックを削除する
  5. 必要に応じて繰り返します

それはマイナス「-」キーになるはずですか?
Dracs 14

すみません-「alt」キーの周りにLTおよびGTブラケットを使用しました。修正されました。
リードシルツ14

10
これを<kdb> Alt </ kbd>に変更すると、キーとしてフォーマットされます。
ドラックス14

私はずっとメモ帳を使ってきました...そして、この機能が存在することを知りませんでした!1バジリオン+1 !!!!!

1
OPは次のよ​​うに述べました。「列モードはオプションではありません」
ピーターモーテンセン14

11

正規表現は高速ですが、それは、より複雑なタスクである場合は、マクロでいくつかの本当にトリッキーなことを行うことができます。

マクロを記録できます:

  1. 行1のカーソル
  2. ヒットスタート記録を
  3. キーを押してホーム
  4. ホールドCtrlキーを押しながら、Right arrow(7回)
  5. ホールドShiftキーを押しながら、End
  6. キーを押す Delete
  7. キーを押す Down arrow
  8. ヒット Stop recording

その後、再生します。

  1. 「マクロを複数回実行する」を押します
  2. 最初の行が完成しているため、ドキュメントの行から1を引いた値を入力します。

9

の後にカーソルを置きます70.97.110.40

カーソルを置く

を押しAlt、カーソルを左右にドラッグして不要な部分を選択します。

選択する

Backspaceまたはを押しDeleteます。

削除する


1
今まではNotepad ++を使用していましたが、TextPadのような「ブロック選択モード」があることは知りませんでした。
ケブ14

@Kev:Visual Studioでも同じように機能します。
ピーターモーテンセン14

1
OPは次のよ​​うに述べています。「列モードはオプションではありません」
ピーターモーテンセン14

@PeterMortensen-re:VS-地獄、2002年からそれを使用していて、知らなかった!
ケブ14

8

以下は、与えられた答えに対するいくつかの代替方法です。

データがの場合、検索でfixed width次の正規表現を使用することもできます。

何を見つける: ^(.{16}).*$

と置換する: \1

誰かが言ったように、保持したいデータにスペースが含まれていれば素晴らしいことです。また、固定幅データの場合は、を使用できますColumn Mode Editing。これは、同じ列の場所で複数行のデータを編集できる、すてきな小さな機能です。列モードの編集を参照してください。

それは矢印キーについて言及していますがPage Up/Down、より高速な方法、EndおよびHomeキーにも使用できます。マウスも動作します。しかし、特定のポイントの後にデータを削除するアドホックな方法、特に数行しかない場合にはこれを使用できます。データのコピーにも適していますが、貼り付けの方法は少し奇妙なので、最初にそれに慣れることをお勧めします。


1
それを選択してそれ自体で置き換えるよりも、(?<= ^。{13})。*のような後読みを使用し、何も置き換えない方が良いでしょう。これにより、最初の13文字以降のすべてが選択されます。
クリスマレー14

4

enthdegreeと同様:

  1. 列16にカーソルを置きます
  2. Shift+ Alt+Page Down
  3. Shift+ Alt+End
  4. Delete

ファイルの最後に空白行がある場合は、Up Arrow#3の前に押すだけです。

完璧ではありませんが、便利です。


4
  1. ALTマウスを投げ縄として使用しているときに押します。
  2. 削除するすべてを選択します
  3. 押す DELETE

最初の列がIPアドレスのようにうまく並んでいると仮定すると、これが最も速い方法です。
bgStack15

OPは次のよ​​うに述べました。「列モードはオプションではありません」
ピーターモーテンセン14

3

視覚的な方法は次のとおりです。

  • IPアドレスの末尾にカーソルを置きます。
  • Alt+ Shift+Pg Down
  • Alt+ Shift+Right
  • Delete

これは「列ベース」ではありません。IPアドレスがすべて揃っているためにのみ機能します。


1
「これは「列ベース」ではありません」とはどういう意味ですか?Alt + Shift +矢印キーを「列モード」に切り替えます。
MrWhite 14

タブ区切りを列として考慮しません。選択範囲の各行が選択範囲の開始点の端を超えて同じ文字数を持つように、それらをスペースに分割します。
enthdegree 14

1

正規表現モードでは、次を検索します:

\ t。*

で置き換える

なし


1つまたは2つの文を追加して、これが何をするのか説明できますか?ありがとう。
fixer1234 14

1
Stack Exchangeは、表示中にタブをスペースに変換しますが、編集モードでもタブは表示されません。
アルジャン14

0

Notepad ++の最初の列の後をすべて削除します。

  1. 2列目を選択:Alt+ドラッグ
  2. 残りの列を選択するには:単に押す Right Arrow
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.