Форум программистов, компьютерный форум, киберфорум
Наши страницы
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
AlexanderSh88
2 / 2 / 2
Регистрация: 28.09.2015
Сообщений: 242
1

Заменить ссылки в одном txt-файле на ссылки из другого

11.10.2015, 11:47. Просмотров 1078. Ответов 9
Метки нет (Все метки)

Здравствуйте, подскажите пожалуйста как можно заменить ссылки в одном txt файле на ссылки в другом txt файле, критерий по которому скрипт должен найти какую ссылку на какую заменить - имя файла в конце ссылки, а также я указываю домен какой на какой заменить. Если идти сверху вниз, то ссылки идут по порядку и их количество совпадает, результат нужно вывести в третий тхт файл. В тхт файле (где нужно заменить ссылки) также есть другой текст..

пример:

в old.txt ссылки, которые нужно заменить. (домен выделен жирным, а также конец ссылки, который совпадает)

jdshjfhsdkjf
[img]http://ist3-***terminator-001.jpg[/img]

File Name : terminator-001.mp4
Genres: Bodybuilding, Posing, Sex Toys
Format: mp4
Duration: 00:02:34
Filesize: 331 MB
Video: MPEG-4 ghjghj20, 29.000 fps, 3499 Kbps
Audio: AAfghfghfgannels, 64.2 Kbps
[IMG]http://ist3-****FileJoker-1.png[/IMG]
http://filejoker.net/n2b1xu907gzx/terminator-001.mp4

//==================
tyutyutyu
[img]http://ist3-***terminator-002.jpg[/img]

File Name : terminator-002.mp4
Genres: dfghfghfghfdgf
Format: mp4
Duration: 00:45:10
Filesize: 22 MB
Video: AVC, 1erter000 fps, 3500 Kbps
Audio: AAC LC, 44.1 rtytrynnels, 125 Kbps
[IMG]http://ist3-***FileJoker-1.png[/IMG]
http://filejoker.net/kbwejujrwejz/terminator-002.mp4

в new.txt ссылки, на которые нужно заменить (в столбик)

http://www.datafile.com/d/T1RNgfhjuNUT0F9/terminator-001.mp4
http://www.datafile.com/d/T1RNgfhjuNUT0F9/terminator-002.mp4
Результат должен получиться:

jdshjfhsdkjf
[img]http://ist3-***terminator-001.jpg[/img]

File Name : terminator-001.mp4
Genres: Bodybuilding, Posing, Sex Toys
Format: mp4
Duration: 00:02:34
Filesize: 331 MB
Video: MPEG-4 ghjghj20, 29.000 fps, 3499 Kbps
Audio: AAfghfghfgannels, 64.2 Kbps
[IMG]http://ist3-****FileJoker-1.png[/IMG]
http://www.datafile.com/d/T1RNgfhjuNUT0F9/terminator-001.mp4

//==================
tyutyutyu
[img]http://ist3-***terminator-002.jpg[/img]

File Name : terminator-002.mp4
Genres: dfghfghfghfdgf
Format: mp4
Duration: 00:45:10
Filesize: 22 MB
Video: AVC, 1erter000 fps, 3500 Kbps
Audio: AAC LC, 44.1 rtytrynnels, 125 Kbps
[IMG]http://ist3-***FileJoker-1.png[/IMG]
http://www.datafile.com/d/T1RNgfhjuNUT0F9/terminator-002.mp4
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.10.2015, 11:47
Ответы с готовыми решениями:

Заменить ссылки в одном файле на ссылки, находящиеся в другом файле, если последние сегменты ссылок совпадают
Здравствуйте, подскажите, пожалуйста, как можно сделать замену ссылок в txt файле? Заменять нужно...

Поиск строк в одном txt-файле и добавление этих строк в другой txt-файл
Добрый день! Помогите, пожалуйста, разобраться. У меня лог файл, из которого мне нужно получить...

Можно ли объединить ссылки <link> в html в одном файле?
Здравствуйте! Возник такой глупый :stop: вопрос, можно ли объединить ссылки в один файл. Т.е. HTML...

Как заменить все ссылки на текст кроме ссылки моего сайта?
Всем привет! Есть выражение и есть текст ссылками. Где ссылки заменяю на слова &quot;Ссылки запрещены!&quot;....

В одном файле (и Combo) названия сайтов, в другом - ссылки. Как задать соответствие
Есть проект using System; using System.Collections.Generic; using System.ComponentModel; using...

9
ComSpec
3410 / 1954 / 628
Регистрация: 26.02.2014
Сообщений: 1,457
11.10.2015, 13:54 2
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
@echo off
 
set "old=old.txt"
set "new=new.txt"
set "result=result.txt"
 
for /f %%i in ('^<"%old%" find/c /v ""') do <"%old%">"%result%" (
 for /l %%j in (1 1 %%i) do (
  set "x="
  set/p x=
  if defined x (
   cmd/v/c echo.!x!| findstr/bilv http://|| (
   for /f "delims=" %%k in ('cmd/v/c echo.!x!') do <"%new%" (
    for /f "delims=" %%l in ('more^| findstr/eilc:"/%%~nxk"') do (
     echo.%%l
    )
   )
   )
  ) else (
   echo.
  )
 )
)
 
exit/b
1
greg zakharov
Покинул форум
2221 / 888 / 250
Регистрация: 07.05.2015
Сообщений: 1,783
11.10.2015, 15:06 3
Если в ссылках меняется все, до последнего слэша на _http://www.datafile.com/d/T1RNgfhjuNUT0F9/_, какой смысл что-то считывать из другого файла? И потом, если есть sed, решение будет выглядить примерно так:
Windows Batch file
1
type file | sed -e 's/^h.*\//http:\/\/www.datafile.com\/d\/T1RNgfhjuNUT0F9\//'
0
AlexanderSh88
2 / 2 / 2
Регистрация: 28.09.2015
Сообщений: 242
11.10.2015, 16:07  [ТС] 4
ComSpec, спасибо, сработало идеально, а можно еще вариантик с ссылками в тегах (форумные)

т.е. файл old.txt исходный файл вот такой (добавились только теги url)

Код
jdshjfhsdkjf
[img]http://ist3-***terminator-001.jpg[/img]

File Name : terminator-001.mp4
Genres: Bodybuilding, Posing, Sex Toys
Format: mp4
Duration: 00:02:34
Filesize: 331 MB
Video: MPEG-4 ghjghj20, 29.000 fps, 3499 Kbps
Audio: AAfghfghfgannels, 64.2 Kbps
[IMG]http://ist3-****FileJoker-1.png[/IMG]
[url]http://filejoker.net/n2b1xu907gzx/terminator-001.mp4[/url]

//==================
tyutyutyu
[img]http://ist3-***terminator-002.jpg[/img]

File Name : terminator-002.mp4
Genres: dfghfghfghfdgf
Format: mp4
Duration: 00:45:10
Filesize: 22 MB
Video: AVC, 1erter000 fps, 3500 Kbps
Audio: AAC LC, 44.1 rtytrynnels, 125 Kbps
[IMG]http://ist3-***FileJoker-1.png[/IMG]
[url]http://filejoker.net/kbwejujrwejz/terminator-002.mp4[/url]
Добавлено через 1 минуту
Цитата Сообщение от greg zakharov Посмотреть сообщение
Если в ссылках меняется все, до последнего слэша на _http://www.datafile.com/d/T1RNgfhjuNUT0F9/_, какой смысл что-то считывать из другого файла?
в другом файле ведь ссылки на которые нужно заменить
0
11.10.2015, 16:07
ComSpec
3410 / 1954 / 628
Регистрация: 26.02.2014
Сообщений: 1,457
11.10.2015, 16:28 5
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
@echo off
 
set "old=old.txt"
set "new=new.txt"
set "result=result.txt"
 
for /f %%i in ('^<"%old%" find/c /v ""') do <"%old%">"%result%" (
 for /l %%j in (1 1 %%i) do (
  set "x="
  set/p x=
  if defined x (
   cmd/v/c echo.!x!| findstr/bilv [url]|| (
   for /f "tokens=2 delims=[]" %%k in ('cmd/v/c echo.!x!') do <"%new%" (
    for /f "delims=" %%l in ('more^| findstr/eilc:"/%%~nxk"') do (
     echo [url]%%l[/url]
    )
   )
   )
  ) else (
   echo.
  )
 )
)
 
exit/b
1
AlexanderSh88
2 / 2 / 2
Регистрация: 28.09.2015
Сообщений: 242
11.10.2015, 16:42  [ТС] 6
спасибо, а можно еще вариантик, если теги url есть и в old.txt и в new.txt
0
ComSpec
3410 / 1954 / 628
Регистрация: 26.02.2014
Сообщений: 1,457
11.10.2015, 16:52 7
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
@echo off
 
set "old=old.txt"
set "new=new.txt"
set "result=result.txt"
 
for /f %%i in ('^<"%old%" find/c /v ""') do <"%old%">"%result%" (
 for /l %%j in (1 1 %%i) do (
  set "x="
  set/p x=
  if defined x (
   cmd/v/c echo.!x!| findstr/bilv [url]|| (
   for /f "tokens=2 delims=[]" %%k in ('cmd/v/c echo.!x!') do <"%new%" (
    for /f "delims=" %%l in ('more^| findstr/eilc:"/%%~nxk[/url]"') do (
     echo.%%l
    )
   )
   )
  ) else (
   echo.
  )
 )
)
 
exit/b
1
AlexanderSh88
2 / 2 / 2
Регистрация: 28.09.2015
Сообщений: 242
11.10.2015, 23:40  [ТС] 8
спасибо, все работает

Добавлено через 6 часов 35 минут
ой, сейчас заметил, что если ссылка не находится, то она удаляется из исходного файла, можно сделать, чтобы скрипт такие ссылки не трогал? для ваших выше показанных трех вариантов.
0
ComSpec
3410 / 1954 / 628
Регистрация: 26.02.2014
Сообщений: 1,457
12.10.2015, 00:09 9
Лучший ответ Сообщение было отмечено AlexanderSh88 как решение

Решение

1)
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
@echo off
 
set "old=old.txt"
set "new=new.txt"
set "result=result.txt"
 
for /f %%i in ('^<"%old%" find/c /v ""') do <"%old%">"%result%" (
 for /l %%j in (1 1 %%i) do (
  set "x="
  set/p x=
  if defined x (
   cmd/v/c echo.!x!| findstr/bilv http://|| (
   for /f "delims=" %%k in ('cmd/v/c echo.!x!') do <"%new%" (
    for /f "delims=" %%l in ('more^| findstr/eilc:"/%%~nxk"') do (
     echo.%%l
    )
   )|| cmd/v/c echo.!x!
   )
  ) else (
   echo.
  )
 )
)
 
exit/b
;


2)
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
@echo off
 
set "old=old.txt"
set "new=new.txt"
set "result=result.txt"
 
for /f %%i in ('^<"%old%" find/c /v ""') do <"%old%">"%result%" (
 for /l %%j in (1 1 %%i) do (
  set "x="
  set/p x=
  if defined x (
   cmd/v/c echo.!x!| findstr/bilv [url]|| (
   for /f "tokens=2 delims=[]" %%k in ('cmd/v/c echo.!x!') do <"%new%" (
    for /f "delims=" %%l in ('more^| findstr/eilc:"/%%~nxk"') do (
     echo [url]%%l[/url]
    )
   )|| cmd/v/c echo.!x!
   )
  ) else (
   echo.
  )
 )
)
 
exit/b
;


3)
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
@echo off
 
set "old=old.txt"
set "new=new.txt"
set "result=result.txt"
 
for /f %%i in ('^<"%old%" find/c /v ""') do <"%old%">"%result%" (
 for /l %%j in (1 1 %%i) do (
  set "x="
  set/p x=
  if defined x (
   cmd/v/c echo.!x!| findstr/bilv [url]|| (
   for /f "tokens=2 delims=[]" %%k in ('cmd/v/c echo.!x!') do <"%new%" (
    for /f "delims=" %%l in ('more^| findstr/eilc:"/%%~nxk[/url]"') do (
     echo.%%l
    )
   )|| cmd/v/c echo.!x!
   )
  ) else (
   echo.
  )
 )
)
 
exit/b
.
1
AlexanderSh88
2 / 2 / 2
Регистрация: 28.09.2015
Сообщений: 242
12.10.2015, 00:29  [ТС] 10
спасибо, работает, отметил этот ответ как лучший..
0
12.10.2015, 00:29
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.10.2015, 00:29

Абсолютные ссылки в html-файле заменить на относительные
как во входном html-файле отличить абсолютные ссылки, которые можно заменить на относительные?

Заменить кусок текста в .txt текстом из другого .txt
Мужики, привет! Такая проблема, имею .txt файл на ~200к строк. Вся структура имеет вот такой вот...

Тематические ссылки на одном IP
Здравствуйте, подскажите пожалуйста, если у меня порядка 20 сайтов одной тематики и весят на одном...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru