Как удалить все строки, которые содержат слово с TextWrangler?

23736
Zee

У меня есть гигантский файл с тысячами строк, я хочу удалить только те строки, которые содержат слово «Foo».

Как бы я поступил так? Я на Mac, так что я мог бы использовать некоторую утилиту командной строки, но я бы предпочел использовать TextWrangler.

4

7 ответов на вопрос

17
interestinglythere

В TextWrangler: Текст > Строки процесса, содержащие…

1
Avalanchis

Используйте регулярное выражение, чтобы найти строки, затем замените их пустой строкой.

Вот страница, которая объясняет, как построить регулярное выражение:

http://www.regular-expressions.info/completelines.html

Для этого в TextWrangler:

  1. Выберите «Найти» в меню «Поиск».
  2. Проверьте флажок Grep .
  3. Введите регулярное выражение в текстовое поле Find :.
  4. Выберите Далее.
1
Ignacio Vazquez-Abrams

Редакторы большинства графических программистов не позволяют удалять подобные строки, а только изменяют их содержимое. Это можно сделать, заменив ^.*Foo.*$ничем.

Если вы готовы обратиться к внешнему инструменту, это можно сделать путем фильтрации sed "/Foo/d".

Я в итоге использовал sed, но это ^ .Foo. * $ Будет работать с TextWrangler. Спасибо! Zee 14 лет назад 0
Так бы сед, как фильтр. Ignacio Vazquez-Abrams 14 лет назад 0
1
Chris Nava

Быстрая командная строка для этого:

grep -v myword myfile > newfile 
0
Gordon Davisson

Если вы будете искать и заменять ^.*Foo.*\rничего (с включенным «Использовать Grep»), он полностью избавится от строк с «Foo» в них, а не просто удалит их. Единственным ограничением является то, что он не будет работать на последней строке в файле. (Замена \r.*Foo.*$на ничего не будет работать в последней строке, но не в первой.)

0
user247650

This perl command line will do the trick!

perl -ni -e "print unless /Foo/" large_file.txt 

you could also do multiple files:

perl -ni -e "print unless /Foo/" *.txt 
0
joshua paul

Bare Bones TextWrangler http://www.barebones.com/products/textwrangler/

Текстовые строки меню процесса, содержащие… Пункт меню

Введите текст для удаления Затем выберите строки для удаления

подтвердить

Process Lines Containing

Похожие вопросы