Удалить файлы содержащие строку
Командная строка – мощный инструмент для автоматизации и упрощения многих задач, которые возникают при администрировании компьютера с операционной системой Windows. В этой статье мы рассмотрим команды DEL, ERASE, RD и RMDIR. С их помощью вы сможете удалять файлы и папки прямо из командной строки.
Удаление файлов через командную строку
Если вам нужно удалить файл через командную строку, то для этого нужно использовать команду DEL или ERASE . Эти команды являются синонимами и работают одинаково. Вы можете получить подробную информацию об этих командах, если введете их в командную строку с параметром « /? ». Например, вы можете ввести « del /? » и в консоль выведется вся основная информация о команде del .
Команда DEL (или ERASE ) предназначена для удаления одного или нескольких файлов и может принимать следующие параметры:
- /P – удаление с запросом подтверждения для каждого файла;
- /F – удаление файлов с атрибутом «только для чтения»;
- /S – удаление указанного файла из всех вложенных папок;
- /Q – удаление без запроса на подтверждение ;
Обычно, для того чтобы воспользоваться командной DEL нужно сначала перейти в папку, в которой находится файл для удаления, и после этого выполнить команду. Для того чтобы сменить диск нужно просто ввести букву диска и двоеточие. А для перемещения по папкам нужно использовать команду « CD ».
После того как вы попали в нужную папку можно приступать к удалению файлов. Для этого просто введите команду DEL и название файла.
Также, при необходимости вы можете удалять файлы, не перемещаясь по папкам. В этом случае нужно указывать полный путь к документу.
Нужно отметить, что при использовании параметра «/a», отвечающие за атрибуты буквы нужно вводить через двоеточие. Например, для того чтобы удалить все файлы с атрибутом «только для чтения» и с расширением «txt» нужно ввести команду « del /F /A:R *.txt ».
Аналогичным образом к команде DEL можно добавлять и другие параметры. Комбинируя их вы сможете создавать очень мощные команды для удаления файлов через командную строку Windows. Ниже мы приводим еще несколько примеров:
Удаление папок через командную строку
Если вам нужно удалить папку через командную строку Windows, то указанные выше команды вам не помогут. Для удаления папок существует отдельная команда RD или RMDIR (сокращение от английского Remove Directory).
Команды RD и RMDIR являются синонимами и предназначены для удаления папок. Они могу принимать следующие параметры:
Например, для того чтобы удалить папку достаточно ввести команду RD и название папки.
Если папка содержит вложенные папки или файлы, то при ее удалении будет выведена ошибка».
Для решения этой проблемы к команде RD нужно добавить параметр « /s ». В этом случае удаление проходит без проблем, но появляется запрос на подтверждение удаления.
Для того чтобы удаление дерева папок прошло без появления запроса на подтверждение к команде нужно добавить параметр « /q ». В этом случае папка удаляется без лишних вопросов.
Также команда RD может принимать сразу несколько папок, для этого их нужно просто разделить пробелом. Например, если выполнить « rd 111 222 », то за один раз можно удалить папки с названиями « 111 » и « 222 ».
Если же вам нужно удалить через командную строку папку, которая сама содержит пробел, то в этом случае ее название нужно взять в двойные кавычки.
Комбинируя команды DEL и RD , можно создавать мощные скрипты для очистки и удаления папок в операционной системе Windows.
Я изменил мою тему WordPress. Старый создал столько изображений на сервере. Моя новая тема не нуждается в них, поэтому я хочу удалить все. Как я могу это сделать?
Например:
изображение по умолчанию: 12_angry_men_lone_holdout.jpg
Использование Digitalocean, Ubuntu 13.10.
на тип терминала, man rm чтобы увидеть страницу руководства команды rm. Похоже, эти изображения являются автоматически созданными миниатюрами изображений, загруженных в медиатеку WorldPress. Если так, то не удаляйте эти файлы в терминале на сервере. Откройте страницу администрирования WordPress, откройте «Настройки»> «Медиа». Установите желаемые размеры уменьшенного изображения там. Затем установите плагин Regenerate Thumbnails и заново создайте все миниатюры (это может занять несколько минут, в зависимости от количества изображений в вашей медиатеке).Если они находятся в одной папке, используйте * подстановочный знак для достижения этого:
Где text находится строка в этом имени файла.
На самом деле это не один каталог, но я могу сделать это по одному сейчас. Спасибо!Используйте find для рекурсивного поиска и удаления файлов с «текстом» в их именах:
Возможно, вы также захотите запустить find -type f -name '*text*' (без -delete ) перед этим, чтобы убедиться, что вы не удалите файлы, которые не собирались удалять.
На самом деле, вы можете размещать подстановочные знаки в любом месте строки поиска, поэтому -name '12_angry_men_lone_holdout-*.jpg' может быть более подходящим в вашем случае.
@AvinashRaj Если первый параметр не является путем, find выполняется поиск в текущем рабочем каталоге. Кто-нибудь положил. только после поиска для поиска внутри текущего рабочего каталога. @AvinashRaj Это было бы излишним. Согласно man find : Если пути не указаны, используется текущий каталог. @AvinashRaj Оказывается, POSIX спецификации для find фактически это требует пути. По умолчанию . это модификация, добавленная GNU find. Если бы это были Unix и Linux , я бы добавил это к своему ответу, но, поскольку Ubuntu поставляется с GNU find по умолчанию, я бы не стал путать новичков больше, чем необходимо. ;)Это будет keep 12_angry_men_lone_holdout.jpg и удалить файлы с размерами (290x166)
И, пожалуйста, помните,
также удалит файл по умолчанию, который вам нужен.
Запустите это в родительском каталоге. Это приведет к удалению всех файлов, которые имеют цифру, за которой следует символ «x», за которым следует другая цифра в имени.
Тем не менее, будьте осторожны, это также может привести к удалению оригинальных файлов, если их имя содержит вышеуказанный шаблон (маловероятно). Сначала запустите его без '-delete', чтобы увидеть, есть ли у вас файлы с таким именем. Если это так, вам просто нужно найти более ограничительный шаблон.
Как бы я использовал sed, чтобы удалить все строки в текстовом файле, которые содержат определенную строку?
Чтобы удалить строку и распечатать вывод на стандартный вывод:
Чтобы напрямую изменить файл - не работает с BSD sed:
То же самое, но для BSD sed (Mac OS X и FreeBSD) - не работает с GNU sed:
Чтобы напрямую изменить файл (и создать резервную копию) - работает с BSD и GNU sed:
Спасибо, но он, кажется, не удаляет его из файла, а просто распечатывает содержимое текстового файла без этой строки. Для некоторого аромата sed; Флаг sed "-i" требовал предоставления расширения. (например sed -i.backup '/pattern to match/d' ./infile ) Это помогло мне с правками на месте. @SiegeX Еще лучше, не применяйте команды, подобные sed тем, которые не контролируются версиями. Еще одно замечание для пользователей Mac OS X: по какой-то причине флаг -i требует передачи аргумента, даже если это просто пустая строка, например sed -i '' '/pattern/d' ./infile .Есть много других способов удалить строки с определенной строкой, кроме sed :
Рубин (1,9+)
Shell (Баш 3.2 и позже)
GNU grep
И конечно sed (обратная печать выполняется быстрее, чем фактическое удаление):
Как удалить конкретную линию с рисунком, а также линию непосредственно над ним? У меня есть штраф с тысячами таких строк между различными данными. В OS / X вариант оболочки не сохраняет начальные пробелы, но вариант grep -v мне помог. sed пример имеет различное поведение, он только отбирает! это должно быть что-то вроде sed -n -i '/pattern/!p' file . Версия grep не работает, когда каждая строка соответствует шаблону. Лучше сделать: grep -v "pattern" file > temp; mv temp file это может относиться к некоторым другим примерам в зависимости от возвращаемого значения. «обратная печать выполняется быстрее, чем фактическое удаление» - не на моем компьютере (2012 MacBook Air, OS X 10.13.2). Создать файл: seq -f %f 10000000 >foo.txt . sed d: time sed -i '' '/6543210/d' foo.txt реальный 0m9.294s. sed! p: time sed -i '' -n '/6543210/!p' foo.txt реальный 0m13.671s. (Для файлов меньшего размера разница больше.)Вы можете использовать sed для замены строк в файле. Тем не менее, это выглядит намного медленнее, чем использование grep для обратного преобразования во второй файл, а затем перемещение второго файла поверх оригинала.
В любом случае, первая команда на моей машине занимает в три раза больше времени.
Голосуйте за ваш ответ тоже, просто потому что вы попробовали сравнение производительности! +1 за возможность перезаписать текущий файл строкой grep. Второе решение «Grep» также лучше для больших файлов Мне интересно, какая разница в производительности, если бы это было sed '/pattern/d' filename > filename2; mv filename2 filename (используя ubuntu / usr / share / dict / words) grep и mv: 0.010s | сед на месте: 0,197 с | sed и mv: 0,031 сСамый простой способ сделать это с помощью GNU sed :
+1 за --in-place флаг. Мне нужно проверить это на разрешениях защищенных файлов. (нужно сделать некоторую пользовательскую чистку.) Обратите внимание, что опция long доступна только в GNU sed. Пользователи Mac и BSD должны будут установить gsed, чтобы сделать это таким образом. Другой совет: если ваше регулярное выражение не соответствует, попробуйте -r вариант (или -E , в зависимости от вашей версии). Это позволяет использовать регулярные выражения метасимволов + , ? , <. >и (. ) . Это правильный ответ, когда на вашем диске больше нет места, и вы не можете скопировать текст в другой файл. Эта команда делает то, что было опрошено?Вы можете рассмотреть возможность использования ex (это стандартный редактор на основе команд Unix):
- + выполняет данную команду Ex ( man ex ), так же как и -c выполняющуюся wq (запись и выход)
- g/match/d - Ex команда для удаления строк с данными match , см .: Мощность g
Приведенный выше пример представляет собой POSIX-совместимый метод для редактирования файла на месте согласно этому посту в спецификациях Unix.SE и POSIX для ex .
Разница в sed том, что:
sed является редактором S Tream ED , а не редактором файлов. BashFAQ
Если вы не наслаждаетесь непереносимым кодом, накладными расходами ввода / вывода и некоторыми другими плохими побочными эффектами. Поэтому в основном некоторые параметры (например, на месте / -i ) являются нестандартными расширениями FreeBSD и могут быть недоступны в других операционных системах.
как с помощью командной строки в windows XP удалить файлы с заданными именами и расширениями в заданных директориях.
очень срочно надо. помогите плизз.
__________________Помощь в написании контрольных, курсовых и дипломных работ здесь
На заданном логическом диске переместить все файлы с заданными расширениями в новый каталог
Народ, кто может помочь с выполнением?! Задание: Разработать сценарий, где на заданном.
В заданном каталоге и его подкаталогах найти и удалить файлы c указанным именем и с определёнными расширениями
Здравствуйте) Вот такое задание у меня: В заданном каталоге и его подкаталогах найти и удалить.
Удалить файлы с чётными именами
Здравствуйте, Нужна помощь в написании bat-ника, который удаляет файлы с чётными именами. .
Удаление тех файлов с заданными расширениями, в именах которых нет заданной последовательности символов
Добрый день. Подскажите как сделать bat чтобы в папке уалял файлы, в имени которых нет заданной.
Как запустить командную строку при помощи клавиатуры? Или, как вызвать командную строку?
Запускается нажатием клавиш Win+R
Как запустить Диспетчер задач из командной строки?
Нажать сочетание клавиш Win+R и набрать в появившейся командной строке - taskmgr Потом нажать Enter.
Как вызвать paint через run:
Если вы уже вызвали командную строку нажатием Win+R осталось ввести: mspaint и нажать Enter.
Часто, это удобно после того как вы сделали фото рабочего стола, при помощи PrintScreen.
Как свернуть командную строку?
Свернуть - это, пожалуй, врядли. а вот закрыть можно, прижав слегка клавишу Esc.
Как вызвать Excel из командной строки?
Набрать в строке excel потом нажать Enter.
Как в командной строке вызвать блокнот?
Командная строка вызвана! Теперь набираем notepad и жмем Enter. Как и во всех других случаях, тем, кто часто использует этот самый простой текстовый редактор, пригодится!
Синтаксис
del [диск:][путь] имя_файла [ . ] [/p] [/f] [/s] [/q] [/a[:атрибуты]]
erase [диск:][путь] имя_файла [ . ] [/p] [/f] [/s] [/q] [/a[:атрибуты]]
Задание расположения и имени файла для удаления. Параметр имя_файла является обязательным. Допускается использование нескольких имен файлов. Имена файлов следует разделять пробелом, запятой или точкой с запятой.
Задание удаления с подтверждением для каждого файла.
Задание удаления файлов с атрибутом "Только чтение".
Удаление заданных файлов в каталоге и всех его подкаталогах. Выводит имена удаляемых файлов.
Задание автоматического режима. Не выводится подтверждение на удаление.
Удаление файлов с заданными атрибутами.
Задание следующих атрибутов файла.
Атрибут Описание
r Только чтение
a Архивный
s Системный
h Скрытый
- Префикс "нет"
Отображение справки в командной строке.
Примеры
Чтобы удалить все файлы из папки Test на диске C, введите одну из следующих команд:
del c:\test
del c:\test\*.*
Читайте также: