Замена символов в текстовом файле командным файлом - PullRequest
6 голосов
/ 01 октября 2009

Есть ли способ заменить некоторые символы в текстовом файле командным файлом?

Я не нашел ни одной команды для этого.

Ответы [ 7 ]

4 голосов
/ 01 октября 2009

Быстрый ответ: «Нет, не с помощью основных утилит Windows»

Но, как предлагают другие ответы, существует множество портов Unix, которые делают то, что вы хотите. Взгляните на пакеты gnuwin32 .

EDIT:

Хорошо, я пересматриваю свое строгое "Нет". Может быть способ сделать это, в зависимости от сложности вашей задачи и вашей ОС. При использовании Windows 2000 и выше, cmd предоставляет расширения команд, которые вы можете использовать.

Основная идея состоит в том, чтобы использовать цикл FOR для прохождения каждой строки входного файла, а затем использовать подстановку строк, предоставленную командой SET, для замены ваших символов.

У меня нет под рукой решения, но вы можете попробовать самостоятельно, используя информацию из этого довольно крутого сайта. Смотрите здесь для синтаксиса цикла FOR и здесь для подстановки строк.

1 голос
/ 01 октября 2009

Вы должны использовать WIN32 SED и посмотреть официальную страницу GNU SED для объяснения. Это действительно мощно:

> sed "s/WORD_FROM/WORD_TO/" file_name > changed.file.name
1 голос
/ 01 октября 2009

Используйте sed или ничего:

sed -i 's/FROM/TO/g' filename.txt

sed можно скачать здесь , для различных платформ.

1 голос
/ 01 октября 2009

вы можете установить unxutils и затем сделать

sed "s/WORD_FROM/WORD_TO/" file_name > changed.file.name

чтобы изменить слова или

cat file|tr "a" "b"  > changed.file.name

для изменения символов

0 голосов
/ 01 октября 2012

Несмотря на то, что этот вопрос довольно старый, будущему читателю может быть интересно узнать, что если вам нужен небольшой exe без каких-либо зависимостей для простой замены текста, я рекомендую использовать FART .

0 голосов
/ 01 октября 2009

Вы можете использовать DOS-порт утилиты командной строки Unix "tr".

Свободный порт DOS может быть найден здесь , один из тех, которые мне нравятся (есть много разных): «UXUTL - полный набор утилит командной строки Unix для DOS.»

Преимущество заключается в том, что вы получаете ВЕСЬ КУЧОК невероятно полезных команд, а не только tr.

0 голосов
/ 01 октября 2009

Вы можете найти программу командной строки, такую ​​как GREP, которую вы можете вызвать из пакета, который возьмет строку замены и файл и выполнит обмен для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...