Мария_Айдарова@vk |
03-01-2013 19:30 2058295 |
Удаление последнего символа в каждой строке txt - файла
Как можно реализовать с помощью bat - файла удаление последнего символа в каждой строке txt - файла?
|
Лучше всего с помощью какой-нибудь утилиты для обработки текста. Например с помощью sed
Код:
sed -i "s/.$//g" 1.txt
|
Код:
@Echo Off
SetLocal EnableDelayedExpansion
Set file=e:\Temp 1\temp.txt
Set newfile=e:\Temp 1\newtemp.txt
(For /F "tokens=* usebackq delims=" %%a In ("%file%") Do (
Set ta=%%a
Echo !ta:~0,-1!
))>"%newfile%"
|
Мария_Айдарова@vk |
03-01-2013 21:14 2058392 |
Всем спасибо огромное!
|
Freddy1984 |
01-08-2019 15:34 2882281 |
А если нужно удалить первый и последний символ, как это правильно реализовать?
я так понимаю ещё один Set и Echo нужно добавить?
|
Вместо А вообще-то работа с текстом в CMD - скользкий путь. Лучше что-то другое (vbs, js, PowerShell)
|
Freddy1984 |
01-08-2019 15:50 2882288 |
согласен, но сначала хочется помучать cmd, наступить на всевозможные грабли, а потом заняться делом))
пробовал так, но что то не выходит, от того и написал сюда..
просто последний символ, это пробел в конце строки, он вот и не удаляется.
|
Freddy1984,
Цитата:
Цитата Белое солнце пустыни
Тебя как сразу прикончить или желаешь помучиться?
Хотелось бы конечно помучиться.
|
:) Если заниматься делом, то дайте Ваш файл.
|
Freddy1984 |
01-08-2019 16:02 2882291 |
Цитата:
Цитата megaloman
Если заниматься делом, то дайте Ваш файл. »
|
да там всё просто, пробел сначала и в конце каждой строки.
строк несколько сот. понятно что можно тупо через ctrl+h , но подумал я таки про cmd для начала.
2. ага, тоже мой обожаемый фильм))))
|
Freddy1984, Не знаю Вашей задачи, оставил только выдачу на консоль без записи в файл. Попробуйте:
Код:
@Echo Off
Set "FileIn=Z:\Box_In\Аренда тента тента тента.txt"
For /F "usebackq delims=" %%a In ("%FileIn%") Do (
Set "ta=%%a"
Echo "%%a"
Call Echo "%%ta:~1,-1%%"
)
Pause
Exit /B
Кавычки поставил специально, чтобы можно было сравнить два Echo: что было и что стало
|
Цитата:
Цитата Freddy1984
да там всё просто, пробел сначала и в конце каждой строки. »
|
А если два где-то будет?
|
Freddy1984 |
01-08-2019 17:30 2882308 |
Цитата:
Цитата Iska
А если два где-то будет? »
|
тогда кирдык ))
|
Freddy1984,
Цитата:
Цитата Iska
А если два где-то будет? »
|
- это реально? А внутри есть пробелы? Что надо, убрать все пробелы в начале и в конце строки?
|
Freddy1984 |
01-08-2019 18:22 2882315 |
Цитата:
Цитата megaloman
Что надо, убрать все пробелы в начале и в конце строки? »
|
да, и этот вопрос решен, я вас поблагодарил :)
|
Freddy1984, Ранее я делал задачу: убрать по одному символу в начале и в конце строки. Оказалось, что это пробелы, и предположили, что их в начале и в конце строки может быть не один
убрать все пробелы в начале и в конце строки
Код:
@Echo Off
cls
Set "FileIn=Z:\Box_In\Аренда тента тента тента.txt"
For /F "usebackq delims=" %%a In ("%FileIn%") Do Call :Trim "%%a"
Pause
Exit /B
:Trim
Set "ta=%~1"
:Begin
Set "tas=%ta%"
If "%ta:~0,1%"==" " Set "ta=%ta:~1%"
If "%ta:~-1%"==" " Set "ta=%ta:~0,-1%"
If Not "%tas%"=="%ta%" GoTo :Begin
Echo "%~1"
Echo "%ta%"
Exit /B
|
Время: 14:50.
© OSzone.net 2001-