Использование FIND и IF EXIST для удаления определенной фразы из текстового файла

#windows #command-line #find

#Windows #командная строка #Найти

Вопрос:

Я пытаюсь обрезать текстовый файл, хотя я использовал следующую команду, но безуспешно:

 FIND "word1" C:UsersUsernameDesktoptest.txt | IF EXIST "word1" (DEL "word1")
  

Синтаксис неверен, я пробовал много разных комбинаций, но безуспешно.

Комментарии:

1. IF EXIST и DEL — это команды, которые работают с файлами, а не с текстом внутри файла.

2. Это разочаровывает : (, интересно, есть ли альтернативный метод

3. Можете ли вы более четко описать, что вы хотите сделать? Данная (недопустимая) команда непонятна, по крайней мере, для меня. Вы пытаетесь удалить определенный фрагмент текста (например, «word1») из файла?

Ответ №1:

Если вы пытаетесь удалить определенный текст из файла, вы можете использовать sed (есть версии, доступные для Windows, такие как эта). Например, для удаления всех экземпляров «word1»:

 sed -e "s/word1//g" inputfile > outputfile
  

Или если вы хотите удалить «word1» только тогда, когда он не встроен в другой текст:

 sed -e "s/bword1b//g" inputfile > outputfile
  

Второй используется b для указания границ слов. Обратите внимание, что в командной строке Windows вам необходимо заключить сценарий sed в двойные кавычки.