Вставить строку в начало каждой строки текстового документа?

#string #insert #text-files

#строка #вставить #текстовые файлы

Вопрос:

Я пытаюсь вставить определенную строку с пробелами «sBody = » перед каждой строкой в текстовом документе. Я нашел этот ответ на других форумах, но он не работает? У меня есть несколько вопросов по поводу этого скрипта: должен ли «myfile» быть полным путем к файлу? Кроме того, этот скрипт изначально был создан для вставки строки в конец файла, что мне нужно извлечь, чтобы заставить его вставить только одну строку в начале?

Спасибо за все ваши ответы!

 @echo off > newfile amp; setLocal EnableDelayedExpansion

for /f "tokens=* delims=" %%a in (myfile) do (
echo STRING %%a STRING >> newfile
)
  

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

1. Вам нужно будет отобразить вашу строку в новый файл, затем добавить исходный файл к этому новому файлу, затем заменить оригинал этим новым файлом. >> только добавляет, оно не будет предварять.

Ответ №1:

Скрипт создает новый файл с именем ‘newfile’, считывающий исходный файл ‘myfile’. Как только это будет сделано, вы можете удалить ‘myfile’ и переименовать ‘newfile’ в ‘myfile’, если хотите. В этом примере каждая <строка> в файле заменяется строкой <строка> STRING.

 @echo off
setLocal EnableDelayedExpansion

for /f "tokens=* delims=" %%a in (myfile) do (
echo STRING %%a STRING >> newfile
)
  

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

1. Как изменить это, чтобы вставить строку в начало каждой строки, не удаляя строку? Являются ли myfile и newfile полным путем к файлу? Спасибо за помощь

2. Угловые скобки вокруг ‘line’ были сняты в исходном комментарии. (Теперь отредактировано, чтобы они отображались правильно.) Чтобы просто добавить префикс к строке, вы можете вместо этого использовать «echo STRING %%a >> newfile»

3. Всегда пожалуйста. [Мне нужно помнить о том, что в тексте ответа используются элементы, подобные <tag> .]

4. Я использую это постоянно, теперь мне нужно вставить символ amp;, а он его не принимает. Могу ли я заключить ее в какие-нибудь квадратные скобки или что-то в этом роде, потому что это специальный символ? Спасибо за помощь.

5. В данный момент у меня нет рядом компьютера с Windows, чтобы проверить это, но, если я помню, вы можете экранировать специальный символ, поставив перед ним ^. Возможно , вам нужно убедиться, что она находится в .cmd, а не в .bat файле.

Ответ №2:

 sed 's/.*/pattern amp;/' yourfile.txt -i
  

у меня работает в одной командной строке