Как указывает Tichodroma, в качестве разделителя регулярных выражений используйте либо «/», либо «@», а не оба. Когда вы добавляете '@' в строку цели поиска, она должна быть в файле, чтобы найти совпадение.
Что более важно, почему вы повторяете имя файла в конце sed
cmd?
Либо хочешь
H:\sed.exe -e "s/PJL COMMENT PREPRINTINFO : COPIES=1/PJL COMMENT PREPRINTINFO : COPIES=2/g" H:\test.txt > H:\test2.txt
ИЛИ, если ваш sed поддерживает опцию -i,
H:\sed.exe -i "s/PJL COMMENT PREPRINTINFO : COPIES=1/PJL COMMENT PREPRINTINFO : COPIES=2/g" H:\test.txt
«g» в конце вашей команды означает «глобальный» и, вероятно, является избыточным, поэтому, чтобы сделать ваш код максимально эффективным, вы должны удалить его, если только вы не ожидаете, что одна строка текста будет содержать более одной строки. копия вашей цели поиска. Я оставил его на месте, так как вы, возможно, делаете с вашими файлами больше, чем указывает ваш вопрос.
Наконец, -e
не добавляет много к команде sed, И это испортит использование, если -i
.
Надеюсь, это поможет.