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

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

Ответить
Настройки темы
PowerShell - [решено] Размножить каждую строку в txt файле n количество раз

Ветеран


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

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


Здравствуйте, подскажите как можно размножить строки в txt файле n количество раз?

к примеру:
был txt:

Код: Выделить весь код
qqqqqqq
rrrrrrrr
222222
ggggggggg
ggggg
мы указываем в скрипте количество дубликатов "3" и должно получиться так:
Код: Выделить весь код
qqqqqqq
qqqqqqq
qqqqqqq
rrrrrrrr
rrrrrrrr
rrrrrrrr
222222
222222
222222
ggggggggg
ggggggggg
ggggggggg
ggggg
ggggg
ggggg
Решение нужно powershell или BAT

Отправлено: 23:04, 06-07-2019

 

Ветеран


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

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


Как-то так — PowerTip: Use PowerShell to Multiply Strings | Scripting, например:
Код: Выделить весь код
$iCount = 3

(
    Get-Content -Path 'C:\Мои проекты\0268\0001.txt' |`
        ForEach-Object -Process {
            ($_ + "`r`n") * $iCount
        }
) -join '' | Set-Content -Path 'C:\Мои проекты\0268\0002.txt'
Это сообщение посчитали полезным следующие участники:

Отправлено: 23:19, 06-07-2019 | #2



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

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


Ветеран


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

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


Спасибо, все дублируется как нужно

Отправлено: 02:37, 07-07-2019 | #3


Забанен


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

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


Слишком много действий для такой простой задачи. В pwsh можно сделать все гораздо проще:
Код: Выделить весь код
(sls "((.*))" E:\sandbox\input.txt).Matches.Groups.Value > E:\sandbox\output.txt
С помощью sed (дублирует строки прямо в оригинальном файле):
Код: Выделить весь код
sed -i "p;p" E:\sandbox\input.txt
Решение на cmd:
Код: Выделить весь код
@echo off
  setlocal enabledelayedexpansion
    set "file=E:\sandbox\input.md"
    set "repeat=3"
    for /f %%i in ('find /v /c "" ^< %file%') do set "lines=%%i"
    3<%file% (
      for /l %%i in (1,1,!lines!) do (
        set /p s=<&3
        for /l %%j in (1,1,!repeat!) do echo:!s!
      )
    ) >> E:\sandbox\output.txt
  endlocal
exit /b
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:24, 07-07-2019 | #4


Ветеран


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

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


Цитата greg zakharov:
В pwsh можно сделать все гораздо проще: »
А где здесь указывается количество?

P.S. Насчёт «проще» оставлю на Вашей совести .
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:50, 07-07-2019 | #5


Ветеран


Contributor


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

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


CMD (дублирует строки прямо в оригинальном файле):
Код: Выделить весь код
@Echo Off
cls
	Set "FileIn=Z:\Box_In\txt.txt"
	Set /A N=5
	
	Set /A Rep=10000000
	FOR /F "usebackq delims=" %%s IN ("%FileIn%") DO Set /A Rep+=1 &Call Set "@@%%Rep%%=%%s"
	>"%FileIn%" (FOR /F "usebackq tokens=1* delims==" %%a IN (`2^>nul Set "@@"`) DO (
		FOR /L %%i IN (1,1,%N%) DO (Echo %%b)
	))
Pause
Exit /B

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

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

Отправлено: 16:58, 07-07-2019 | #6


Забанен


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

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


Iska, подобного рода заявлениями вы лишь указываете на свое незнание регэкспов.

Отправлено: 18:25, 07-07-2019 | #7


Ветеран


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

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


Коллега, подобного рода заявлениями вместо вменяемого ответа, Вы демонстрируете лишь свою спесь.

Отправлено: 19:03, 07-07-2019 | #8


Забанен


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

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


Iska, по себе ли кафтан примеряете? Завидуйте молча.

Отправлено: 21:11, 07-07-2019 | #9


Аватара для YuS_2

Crazy


Contributor


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

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


Iska, greg zakharov, не ссорьтесь, ну нет причины же для этого... на ровном месте, можно сказать...

greg zakharov, ну, правда, не сложно ведь объяснить. Всего и вся на свете знать невозможно...
А на счет проще, тоже соглашусь, не совсем это просто. Для того, чтобы это показалось простым, необходимо слишком глубоко изучить ПО, вплоть до внутреннего устройства. Не всем необходимы настолько подробные знания, иногда они излишни, имхо.

Цитата Iska:
А где здесь указывается количество? »
там просто используются возможности групп шаблона регвыра, от количества скобок будет зависеть количество повторов.

-------
scio me nihil scire. Ѫ

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

Отправлено: 21:24, 07-07-2019 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Удалить пустую строку в файле .txt denntl Скриптовые языки администрирования Windows 2 18-07-2013 11:48
Любой язык - [решено] Как выделить каждую определенною строку в текстовом файле KooDI Скриптовые языки администрирования Windows 6 05-03-2013 21:47
CMD/BAT - [решено] Запись названия файла в каждую строку Knopppka Скриптовые языки администрирования Windows 5 02-03-2013 13:33
CMD/BAT - _Вписывание на каждую строку lukas_endigo_91@vk Скриптовые языки администрирования Windows 1 21-12-2012 15:56
CMD/BAT - [решено] Каждую секунду отображать точку, не перенося строку. RomanLis Скриптовые языки администрирования Windows 5 05-04-2012 12:21




 
Переход