Вопрос или проблема
Я хочу удалить все разрывы строк из текстового файла
Пример:
FILE1 +
FILE2 +
FILE3 +
Выход должен быть
FILE1 + FILE2 + FILE3 +
Я не могу найти ответы в поисковой системе, которые могут решить мою проблему.
Есть ли способ автоматически удалить разрыв строки, используя/из команды
@echo %SomeStringHere%>>file.txt
, потому что это причина моей проблемы. Он автоматически вставляет разрыв строки перед строкой для вставки. Или есть команда, которая может обновить текстовый файл без нового разрыва строки?
Я бы предложил установить awk. Чтобы сделать это на OSX
brew install awk
После установки вы можете добавить следующую строку в ваш bash-скрипт:
awk '{printf "%s+",$0} END {print ""}'
Примечание: Если вы используете Windows, я предлагаю GAWK (http://gnuwin32.sourceforge.net/packages/gawk.htm)
test.txt
FILE1 +
FILE2 +
FILE3 +
join.bat
@echo off
setlocal enabledelayedexpansion
set outstring=
for /f "delims=" %%A in (test.txt) do set outstring=!outstring!%%A
echo outstring=%outstring%
выход
c:\Batch>join.bat
outstring=FILE1 + FILE2 + FILE3 +
Ответ или решение
Чтобы удалить все переносы строк из текстового файла с использованием Batch, вам нужно собрать строки файла в одну строку, сохраняя нужные разделители. Ниже приведена инструкция по достижению этой цели.
Шаги для удаления переносов строк из текстового файла с помощью Batch:
-
Создайте текстовый файл (например,
test.txt
), содержащий ваши данные:FILE1 + FILE2 + FILE3 +
-
Создайте Batch файл (например,
join.bat
) с соответствующими командами. Этот файл будет объединять строки в исходном текстовом файле в одну строку. -
Код для Batch файла:
@echo off setlocal enabledelayedexpansion set outstring= for /f "delims=" %%A in (test.txt) do set outstring=!outstring!%%A echo !outstring! > result.txt
-
Объяснение кода:
@echo off
: отключает вывод команд в консоль для повышения читаемости.setlocal enabledelayedexpansion
: позволяет использовать отложенное расширение переменных, что необходимо для динамической сборки строк.set outstring=
: инициализирует переменнуюoutstring
, которая будет содержать результирующую строку.for /f "delims=" %%A in (test.txt) do set outstring=!outstring!%%A
: проходит по каждой строке исходного файла, добавляя её кoutstring
.echo !outstring! > result.txt
: выводит результирующую строку в новый файлresult.txt
.
-
Запустите
join.bat
:
С помощью командной строки или двойным щелчком по файлу запуститеjoin.bat
. В результате будет создан файлresult.txt
, содержащий строку:FILE1 + FILE2 + FILE3 +
Заключение
Этот метод позволяет вам удалить все переносы строк, эффективно объединяя содержимое файла в одну строку с помощью Batch. Если вы ищете инструмент для постоянной автоматизации подобных задач, возможно, стоит рассмотреть альтернативные скриптовые языки, такие как Python или PowerShell, обеспечивающие более широкие возможности.
Таким образом, использование Batch для подобных задач требует лишь базовых знаний и может быть применено в ситуациях, когда установка дополнительных инструментов ограничена.
Если вас интересуют более сложные сценарии работы с текстом или другие оптимизации, всегда полезно рассматривать различные скриптовые и программные средства.