Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Вставить после каждой 10 строки пустую строку

Ответить
Настройки темы
CMD/BAT - [решено] Вставить после каждой 10 строки пустую строку

Новый участник


Сообщения: 4
Благодарности: 0

Профиль | Отправить PM | Цитировать


Как в txt файле после каждой 10 строки вставить пустую строку?

Отправлено: 21:05, 30-07-2013

 

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Если в изначальном текстовом файле нет пустых строк, то, например, так:
читать дальше »
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

set sSourceFile=0001.txt
set sDestFile=0002.txt

if exist "%sSourceFile%" (
	set /a iCount = 1
	
	>"%sDestFile%" (
		for /f "usebackq delims=" %%i in ("%sSourceFile%") do (
			echo %%i
			
			if !iCount! lss 10 (
				set /a iCount += 1
			) else (
				echo.
				set /a iCount = 1
			)
		)
	)
) else (
	echo Can't find source file [%sSourceFile%].
)

endlocal
exit /b 0
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:16, 30-07-2013 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 1758
Благодарности: 966

Профиль | Цитировать


Mycry,
гнутый sed
Код: Выделить весь код
@echo off

1>file.tmp sed "10~10 s/$/\n/" file.txt
move file.tmp file.txt
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:46, 30-07-2013 | #3


Новый участник


Сообщения: 4
Благодарности: 0

Профиль | Отправить PM | Цитировать


Большое спасибо Iska и Foreigner. Остановился на первом варианте.

Отправлено: 21:55, 30-07-2013 | #4


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата Foreigner:
гнутый sed »
.

PowerShell:
Код: Выделить весь код
$sSourceFile = "E:\Песочница\0304\0001.txt"
$sDestFile   = "E:\Песочница\0304\0002.txt"

if(Test-Path -Path $sSourceFile -PathType Leaf) {
    Get-Content -Path $sSourceFile | ForEach-Object -Process {
        $_
        
        if($_.ReadCount % 10 -eq 0) {
            ""
        }
    } | Set-Content -Path $sDestFile
} else {
    Write-Host -ForegroundColor Red "Can't find source file [$sSourceFile]."
}
Это сообщение посчитали полезным следующие участники:

Отправлено: 22:24, 30-07-2013 | #5


Ветеран


Сообщения: 1758
Благодарности: 966

Профиль | Цитировать


Iska, Я тоже подумал про Powershell, но выбрал sed:
Код: Выделить весь код
$a = gc file.txt
$i = 0; $( while ($i -le ($a.count-1)) { $a[$i..($i+9)]; ''; $i+=10 } ) | sc file.txt
Или через for:
Код: Выделить весь код
$a = gc file.txt
$(for ($i = 0; $i -le ($a.count-1); $i+=10) { $a[$i..($i+9)]; '' }) | sc file.txt

Последний раз редактировалось Foreigner, 30-07-2013 в 22:53.

Это сообщение посчитали полезным следующие участники:

Отправлено: 22:47, 30-07-2013 | #6


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Foreigner, в обоих случаях — лишняя пустая строка в конце результирующего файла.
Это сообщение посчитали полезным следующие участники:

Отправлено: 23:24, 30-07-2013 | #7


Ветеран


Сообщения: 1758
Благодарности: 966

Профиль | Цитировать


Iska, Действительно, можно попробовать так:
Код: Выделить весь код
$a = gc file.txt
for ($i = 1; $i -le ($a.count % 10); $i++) { $a[$i * 10 - 1] += "`n" }
$a | sc file.txt
Это сообщение посчитали полезным следующие участники:

Отправлено: 23:54, 30-07-2013 | #8


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Только «`r`n» .
Это сообщение посчитали полезным следующие участники:

Отправлено: 00:05, 31-07-2013 | #9



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Вставить после каждой 10 строки пустую строку

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Как вывести пустую строку? akrav Скриптовые языки администрирования Windows 7 28-01-2024 16:46
CMD/BAT - [решено] Удалить пустую строку в файле .txt denntl Скриптовые языки администрирования Windows 2 18-07-2013 11:48
CMD/BAT - [решено] For, чтение двух переменных с каждой строки DesmondTruman Скриптовые языки администрирования Windows 4 21-12-2012 03:12
Разное - Добавление имени файла в начало каждой строки. CkapHa Программирование и базы данных 2 02-01-2012 22:13
CMD/BAT - [решено] как удалить 1ю строку и склеить строки 3+4, 6+7, 9+10 shadowbat Скриптовые языки администрирования Windows 9 24-05-2010 08:16




 
Переход