искать слово в файлах .txt и записать несколько строк в новый файл .txt
Пожалуйста, помогите мне создать скрипт для выполнения задачи, как описано ниже. У меня есть 2 файла. A.txt и B.txt Содержание A.txt согласно ниже
ITEM name TICKY title nice coffe drink type DRINK ITEM name APPLE title sweet tasty apple type FRUIT ITEM name JUICE title nice tasty drink type DRINK ITEM name ORANG title niice nice orange type FRUIT ITEM name CHERY title nutritious rich fruit type FRUIT
Теперь мне нужно поискать в A.txt слово «FRUIT» и скопировать 2-ю строку поверх «FRUIT» в новый файл с именем
list.txt. НО мне нужно только название фрукта, где list.txt должен выглядеть следующим образом.
APPLE ORANG CHERY
Это моя кодировка (Powel Shel), чтобы сделать это ...
$source = "C:\temp\A.txt" $destination = "C:\temp\list.txt" $hits = select-string -Path $source -SimpleMatch "type FRUIT" -CaseSensitive $filecontents = get-content $source foreach($hit in $hits) { $filecontents[$hit.linenumber-3]| out-file -append $destination "" |out-file -append $destination }
Это извлечет 2-ю верхнюю строку, как показано ниже
name APPLE name ORANG name CHERY
А ниже кодировка (.bat) уберет слово «имя».
@echo off setlocal enabledelayedexpansion del list2.txt for /f "tokens=*" %%a in (C:\temp\list.txt) do ( set line=%%a set chars=!line:~-13,13! echo !chars! >> list2.txt )
На втором этапе теперь мне нужно искать слово в файле list.txt (APPLE, ORANG, CHERY .....) в моем B.txt .. B.txt будет
выглядит как ниже.
ITEM p_date 10/03/15 pt_time 11:29:40:00 title nice coffe drink name TICKY stock yes end ITEM p_date 10/03/15 pt_time 11:29:40:00 title sweet tasty apple name APPLE stock yes end ITEM p_date 10/03/15 pt_time 11:29:40:00 title nice tasty drink name JUICE stock yes end ITEM p_date 10/03/15 pt_time 11:29:40:00 title niice nice orange name ORANG stock yes end ITEM p_date 10/03/15 pt_time 11:29:40:00 title nutritious rich fruit name CHERY stock yes end
И теперь я должен найти миры из list.txt в B.txt, извлечь 3 верхние строки и записать их соответственно в новый файл.
названный done.txt ............ ниже моя кодировка (powershel).
$source = "C:\temp\B.txt" $destination = "C:\temp\done.txt" $patterns = Get-Content c:\temp\list2.txt | Where-Object{$_} $results = Select-String c:\temp\done.txt -Pattern $patterns -SimpleMatch $results.Line | ForEach-Object{"$_`r`n"} | Set-Content c:\temp\done.txt foreach($hit in $hits) { $filecontents[$hit.linenumber-4]| out-file -append $destination $filecontents[$hit.linenumber-3]| out-file -append $destination $filecontents[$hit.linenumber-2]| out-file -append $destination $filecontents[$hit.linenumber-1]| out-file -append $destination "" |out-file -append $destination }
Мне удалось разработать код для этого. но мне нужно 3 файла сценария (2 powershel и 1 партия), чтобы завершить эту операцию. доброжелательно
помогите мне выполнить эту задачу в одном скрипте. Будет лучше, если он будет в .vbs или .bat. Пожалуйста, помогите мне .. спасибо.
0 ответов на вопрос
Похожие вопросы
-
3
Как я могу "инвертировать" структуру каталогов?
-
1
Приостановить все, кроме x задач, интенсивно использующих процессор
-
7
Запустить синергетический клиент при загрузке в Mac OS X
-
-
4
Как синхронизировать скрипты GreaseMonkey между компьютерами?
-
1
Могу ли я написать скрипт, который будет автоматически переключать пользователей?
-
6
Хорошее руководство по PowerShell, начало работы с более продвинутым использованием
-
3
Сбой FTP «PUT» на виртуальной машине, но не на хост-ПК: 504 Команда не реализована для этого парамет...
-
1
ksh эквивалент perl $! причина ошибки
-
2
Ошибка индекса вне диапазона в сценарии VBScript
-
5
Как автоматически переместить файл на другой компьютер в сети?