Войти

Показать полную графическую версию : Как вставить пробелы в строки


vision-d
28-12-2013, 23:47
Привет всем отзывчивым!
Помогите плиз. Нужно вставить в начало строк пробелы. В ручную не реально сделать (список длиннющий). Посоветуйте что-нибудь!

Iska
28-12-2013, 23:55
Нужно вставить в начало строк пробелы. »
Куда, в текстовый файл? Опять вопросы: а) с кодировкой файла, б) с наличием пустых строк.

vision-d
29-12-2013, 12:28
Да, это текстовый файл. Кодировка 1251, без пустых строк.

Iska
29-12-2013, 13:25
@echo off
setlocal enableextensions enabledelayedexpansion

>"NewFile.txt" (
for /f "usebackq delims=" %%i in ("0001.txt") do echo %%i
)

endlocal
exit /b 0

Foreigner
29-12-2013, 14:12
Имхо, лучше все таки специально написанные утилиты. Батник он такой батник, что простое echo сожрет спецсимволы, двойные пробелы, в общем может исходный файл испортить, предлагаю перейти на PowerShell или использовать утилиты:

# powershell

(gc file.txt) -replace '^',' ' | out-file file.txt


:: cmd, sed (http://gnuwin32.sourceforge.net/packages/sed.htm)

sed "s/^/ /g" file.txt 1>file.txt

vision-d
29-12-2013, 22:22
Код:
# powershell
(gc file.txt) -replace '^',' ' | out-file file.txt »

Забыл, в конце текста тоже нужен пробел. Дополните пожалуйста...

Iska
29-12-2013, 22:30
@echo off
setlocal enableextensions enabledelayedexpansion

>"NewFile.txt" (
for /f "usebackq delims=" %%i in ("0001.txt") do echo %%i
)

endlocal
exit /b 0
$sFile = "E:\Песочница\0342\0001.txt"

(Get-Content -Path $sFile) -replace '^(.*)$', ' $1 ' | Out-File -FilePath $sFile

vision-d
29-12-2013, 23:10
Помогло!
Спасибо!

vision-d
30-12-2013, 18:52
Есть ещё одна задачка. Есть текстовый файл содержащий в строках номера:

5080679
5471
4973874
53724
532204
396

Как сделать чтобы добавлялись в строки символы?
Чтобы строки принимали следующий вид:

'/rsl01005080679.pdf';
'/rsl01000005471.pdf';
'/rsl01004973874.pdf';
'/rsl01000053724.pdf';
'/rsl01000532204.pdf';
'/rsl01000000396.pdf';

и вид

'/rsl1@005080679';
'/rsl1@000005471';
'/rsl1@004973874';
'/rsl1@000053724';
'/rsl1@000532204';
'/rsl1@000000396';
'/rsl1@005019694';

Foreigner
30-12-2013, 19:07
PowerShell:

$a = gc file.txt

$a | % { "'/rsl{0:01000000000}.pdf';" -f [int]$_ }
$a | % { "'/rsl@{0:000000000}';" -f [int]$_ }

vision-d
02-01-2014, 15:36
@echo off
setlocal enableextensions enabledelayedexpansion
>"NewFile.txt" (
for /f "usebackq delims=" %%i in ("0001.txt") do echo %%i
)
endlocal
exit /b 0 »

Этот метод подойдет для файлов в utf-8?

Iska
02-01-2014, 16:46
Предпочтительнее использовать PowerShell, указывая кодировку входного и выходного файлов.

vision-d
02-01-2014, 22:32
а если у меня файл (5гб) больше чем оперативки на компе (4гб) будет ли он выполнять задачу с подстановкой символов?

Iska
04-01-2014, 22:57
Что-то более опытные коллеги молчат…

vision-d, выполнять задачу будет (разве что Вы принудительно отключили файл подкачки). Другое дело, что при таком объёме надо смотреть на конкретные командлеты. Например, код из ##5, 7 и 10, как я понимаю, считывают файл целиком в память. Более щадящим будет использование построчного чтения из одного файла, поиск/замена в строке и запись её в другой файл.

vision-d
15-01-2014, 13:25
$a = gc file.txt
$a | % { "'/rsl{0:01000000000}.pdf';" -f [int]$_ }
$a | % { "'/rsl@{0:000000000}';" -f [int]$_ } »
Можно ли сделать тут чтобы он строки не переносил на отдельные строки, а записывал бы их сплошным текстом?

Foreigner
15-01-2014, 18:07
vision-d:
чтобы он строки не переносил на отдельные строки, а записывал бы их сплошным текстом?

$a = gc file.txt

( $a | % { "'/rsl{0:01000000000}.pdf'" -f [int]$_ } ) -join ';'
( $a | % { "'/rsl@{0:000000000}'" -f [int]$_ } ) -join ';'

vision-d
21-03-2014, 14:01
PowerShell:
Код:
$a = gc file.txt
$a | % { "'/rsl{0:01000000000}.pdf';" -f [int]$_ }
$a | % { "'/rsl@{0:000000000}';" -f [int]$_ } »

Добрый день!
Подскажите пожалуйста можно ли проставлять вместо символов 0:000000000 пробелы? Подскажите как они обозначаются...

Iska
21-03-2014, 14:48
Подскажите пожалуйста можно ли проставлять вместо символов 0:000000000 пробелы? Подскажите как они обозначаются... »
Formatting Types (http://msdn.microsoft.com/en-us/library/26etazsy(v=vs.110).aspx)




© OSzone.net 2001-2012