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

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

Ответить
Настройки темы
Любой язык - Замена части информации в файлах txt на имя папки

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


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

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


Добрый день форумчане.
Нужна срочная помощь.
Есть группа файлов разложенная по разным папкам, файлы формата *.22O, но внутри обычный txt.
Суть задачи:
1. Найти все файлы в подкаталогах исходного каталога, при этом нужны файлы в пути к которым присутствует слово rinex.
*\12345\2\20220609\472593\Кожино_КТ_001\файлы данных в формате rinex\K0011600.22o - этот должен быть найден
*\12345\2\20220609\ДГС Сергиев Посад\SPSS_090622.0510_090622.1520_730321.22o - этот НЕ должен меняться

2. В найденных файлах, нужно заменить данные в строке 4 и 5

2 OBSERVATION DATA M RINEX VERSION / TYPE
LEICA GEO OFFICE 7.0 10-6-22 15:40 PGM / RUN BY / DATE
Ткачук В.С. АО ВАГП OBSERVER / AGENCY
0001 MARKER NAME
0001 MARKER NUMBER
472593 LEICA GX1230GG 7.01 REC # / TYPE / VERS
08500004 LEIAX1202GG ANT # / TYPE
2743318.5900 2240299.1118 5286791.3241 APPROX POSITION XYZ
1.6890 0.0000 0.0000 ANTENNA: DELTA H/E/N

На имя папки на два уровня выше *\12345\2\20220609\472593\Кожино_КТ_001\файлы данных в формате rinex\K0011600.22o
При этом количество заменяемых символов должно соответствовать длине нового имени, т.е. выделяются старые данные + пробелы.

В итоге получается так:

2 OBSERVATION DATA M RINEX VERSION / TYPE
LEICA GEO OFFICE 7.0 10-6-22 15:40 PGM / RUN BY / DATE
Ткачук В.С. АО ВАГП OBSERVER / AGENCY
Кожино_КТ_001 MARKER NAME
Кожино_КТ_001 MARKER NUMBER
472593 LEICA GX1230GG 7.01 REC # / TYPE / VERS
08500004 LEIAX1202GG ANT # / TYPE
2743318.5900 2240299.1118 5286791.3241 APPROX POSITION XYZ
1.6890 0.0000 0.0000 ANTENNA: DELTA H/E/N

Отправлено: 15:44, 16-08-2022

 

Аватара для DJ Mogarych

fascinating rhythm


Moderator


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

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


Powershell:
Код: Выделить весь код
dir "D:\temp\12345" -Recurse |? {!$_.psiscontainer -and $_.fullname -match "rinex"} |% {
$r = $_.fullname.split('\')[-3]
$txt = (gc $_.FullName) -replace "\d{4}( MARKER (NAME|NUMBER))",($r + '$1')
$txt |Set-Content $_.fullname
}
Особенно не тестировал, проверьте сначала на пробном наборе данных.

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)


Последний раз редактировалось DJ Mogarych, 16-08-2022 в 21:01. Причина: более короткий replace


Отправлено: 17:59, 16-08-2022 | #2



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

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



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Разбить txt на части по разделителю Viktor99 Скриптовые языки администрирования Windows 7 31-07-2022 15:13
CMD/BAT - В txt-файлах заменить заданные фагменты текста на свои qaaqasqad Скриптовые языки администрирования Windows 2 16-08-2017 22:34
CMD/BAT - Поиск и замена строки в txt файлах по содержанию этой строки. sayyad Скриптовые языки администрирования Windows 1 06-12-2015 13:20
CMD/BAT - [решено] Замена части текста в txt файлах Traveller124 Скриптовые языки администрирования Windows 7 02-04-2012 19:16
CMD/BAT - Сравнение и замена в файлах .txt Deep2007 Скриптовые языки администрирования Windows 4 19-11-2010 19:08




 
Переход