Як я можу видалити все після першого стовпця в Блокноті ++?


40

Я намагаюся позбутися всього після стовпця в Блокноті ++. Режим стовпчика - це не варіант. Це можливо?

Що я маю:

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
Чи розділені колонки на вкладках?
Excellll

3
Ще одне питання: чи дані, які ви хочете зберегти, коли-небудь містять пробіл?
Excellll

1
ні, мені потрібні лише ips
Bob J

20
Чому ви хочете це робити в блокноті ++? Чому режим стовпців - це не варіант?
Каміль

1
Ви можете використовувати режим стовпців, щоб видалити другий стовпець до EOL, а потім скористатись обрізним контуром та зберегти, щоб позбутися пробілу.
Кейсі Кубалл

Відповіді:


60

Якщо дані в першому стовпці ніколи не містять пробілу, ви можете використовувати звичайний вираз пошуку та заміни, щоб отримати те, що потрібно.

У режимі регулярного вираження шукайте:

^([^ ]*).*

І замінити на

\1

Що це робить:

^вказує, що будь-яка відповідність повинна починатися на початку рядка.
([^ ]*)- це будь-який вираз, який не містить пробілу. Збіг жадібний, тому це буде відповідати всім до першого пробілу (або в кінці рядка, залежно від того, що відбудеться раніше).
.*все інше на лінії.

\1відноситься до частини збігу всередині дужок. Тобто весь рядок замінюється просто бітом з першого стовпця.


5
Приємно знати, що блокнот ++ підтримує регулярні вирази в пошуку-заміні!
Каміль

1
Regex зробить роботу за вас до тих пір, поки дані ніколи не містять місця. Простішою була б команда UNIX 'cut', але виконання команд UNIX під Windows - це ціла проблема. для цього робиться скорочення і обробляє великі файли швидко, з визначеними роздільниками стовпців або за кількістю символів.
Карл

31
Це можна зробити набагато простіше: замініть ". *" (Зверніть увагу на провідний пробіл) на "" (тобто нічого), щоб видалити все після та включити перший пробіл.
Fraxtil

2
@Fraxtil Дякую Ви повинні опублікувати це як відповідь. Ви отримаєте виклик від мене.
Excellll

@Excellll добре, готово.
Fraxtil

99

Ось простіший регулярний вираз, який ви можете використовувати для досягнення того ж ефекту. Замініть

 .*

(зверніть увагу на провідний простір)

ні з чим. Це видалить все після та включити перший пробіл. Це буде працювати до тих пір, поки ваші IP-адреси ніколи не мають префіксу будь-якого пробілу (як у вашому прикладі).


8
Людина, виразка - це чиста магія. Я не думаю, що я коли-небудь пороблю це :)
Torben Gundtofte-Bruun

14
Переконайтеся, що прапор мати. Нові рядки відповідності вимкнено.
Taemyr

3
У випадку, якщо це потенційно вкладка, а не пробіл, ви можете використовувати[ \t].*
Cornstalks

4
@Cornstalks \s.*коротше. Можливо, навіть використовувати \s+.*, щоб відповідати довільній кількості пробілів, тепер, коли ми кодуємо оборонно .
Анко

1
@ jpmc26 до тих пір, поки в одному реченні ви не скажете "регулярний вираз" і "простий" :)
Torben Gundtofte-Bruun

39

Якщо ви використовуєте Windows, і якщо ви не заперечуєте пробіли (ви можете знайти / замінити їх згодом), скористайтеся функцією " Вибір блоку ":

  1. Натисніть і потримайте Altклавішу
  2. За допомогою миші виберіть частину, яку потрібно видалити (весь блок тексту)
  3. Відпустіть Altключ
  4. Видаліть цей блок тексту
  5. Повторіть по мірі необхідності

Це повинен бути мінус "-" ключ?
Dracs

Вибачте - я використав дужки LT та GT навколо клавіші 'alt'. Виправлено зараз.
Reed Shilts

10
Ви можете змінити його на <kdb> Alt </kbd>, і він буде форматувати його як ключ.
Dracs

Я використовую Notepad назавжди .... і ніколи не знав, що ця функція існує! 1 мільярд +1 !!!!!

1
В ОП сказали: "Режим стовпчика - це не варіант"
Пітер Мортенсен

11

Регулярний вираз швидше, але ви можете зробити деякі дійсно складні речі з макросами , якщо це більш складне завдання.

Ви можете записати макрос:

  1. Курсор на рядок 1
  2. Натисніть Почати запис
  3. Натисніть клавішу додому
  4. Утримуйте Ctrl, натиснувши клавішу Right arrow(сім разів)
  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.
Кев

@Kev: так само працює і у Visual Studio.
Пітер Мортенсен

1
В ОП сказали: "Режим стовпчика - це не варіант"
Пітер Мортенсен

@PeterMortensen - re: VS - чорт, використовував це з 2002 року і навіть не знав!
Кев

8

Ось пара альтернативних способів даної відповіді.

Якщо дані є fixed width, ви також можете використовувати наступний регулярний вираз у пошуку:

Знайти що: ^(.{16}).*$

Замінити: \1

Чудово, якщо дані, які ви хочете зберегти, містять пробіл, як хтось згадав. Крім того, знову для даних фіксованої ширини ви можете використовувати Column Mode Editing. Це акуратна маленька функція, яка дозволяє редагувати кілька рядків даних в одному місці колонки. Див. Редагування режиму стовпців .

Це робить згадка клавіш зі стрілками, але ви можете також використовувати Page Up/Downдля більш швидкого способу, а також Endі Homeключі. Миша також працює. Але ви можете використовувати це для спеціального методу видалення даних після певного моменту, особливо якщо це лише кілька рядків. Це також добре для копіювання даних, але спосіб його вставки трохи дивний, тому ви хочете спочатку звикнути до цього.


1
Краще, ніж вибирати його та замінювати його самим, було б скористатися виглядом позаду: (? <= ^. {13}). * Та замінити його нічим. Це вибере що завгодно після перших 13 символів.
Кріс Мюррей

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

В ОП сказали: "Режим стовпчика - це не варіант"
Пітер Мортенсен

3

Ось наочний спосіб:

  • Поставте курсор в кінці IP-адреси.
  • Alt+ Shift+Pg Down
  • Alt+ Shift+Right
  • Delete

Це не на основі стовпців. Це працює лише тому, що ваші IP-адреси в усіх рядах.


1
Що ви маєте на увазі під "Це не" на основі стовпця "? Alt + Shift + Стрілка переходить у "режим стовпця".
MrWhite

Він не розглядає розмітку табуляції як стовпчик. Він розбиває їх на пробіли, так що кожен рядок у виділенні має однакову кількість символів за межею вихідної точки вибору.
enthdegree

1

У режимі регулярного вираження шукайте:

\ т. *

І замінити на

Нічого


Чи можете ви додати речення чи два, щоб пояснити, що це робить? Спасибі.
fixer1234

1
Stack Exchange перетворює вкладки в пробіли під час відображення, але навіть у режимі редагування приклад не показує ніяких вкладок.
Ар'ян

0

Видаліть усе після першого стовпця в Блокноті ++:

  1. Виділіть другий стовпець: Alt+ Перетягніть
  2. Для вибору стовпців для відпочинку: просто натисніть Right Arrow
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.