Удалить частично совпадающие строки из текстового файла

0

У меня есть 1 большой XML-файл с такими строками, как -

<text file name 5 HD text>
<text file name 2 text>
<text file name 3 text>
<text file name HD 2 text>
<text file name 5 text>

Возможно использовать vbscript или powershell для вывода -

<text file name 5 HD text>
<text file name 3 text>
<text file name HD 2 text>

и в новом файле добавляем удаляемые строки -

<text file name 2 text>
<text file name 5 text>

HD находится где-нибудь в имени файла и без сортировки.

я нахожу Удаление целых строк в текстовом файле на основе частичного совпадения строк с помощью Windows PowerShell но не точный ответ. Нет Java в фаворе, поскольку я удаляю это для безопасности взлома.

Angelo
источник
1
Какое правило для того, что входит в каждый файл? Это не все, ни строки, содержащие «HD», ни странные, ни четные числа.
Nicole Hamilton
@NicoleHamilton: Извините, пожалуйста, я не понимаю, что вы говорите. Некоторые имена файлов там 2 раза, 1 нормальная и 1 HD версия. Я хочу удалить нормальную строку версии в новый файл, если есть версия HD. Если HD нет, то нормальная версия остается в оригинальном XML.
Angelo

Ответы:

0

Простой скрипт для разделения строк в разные файлы на основе произвольных критериев (например, если есть тег HD)

# Get the contents of the file.
$file = get-content ~\file.xml

# Loop through the xml file adding all "HD" tags to one file and all non "HD" tags to another file
foreach($text in $file)
{
    if($text.Contains("HD")) {
        Add-Content ~\hd.txt $text
    } 
    else {
        Add-Content ~\nohd.txt $text
    }
}

Если критерии немного отличаются, просто измените выражение «если» в соответствии с вашими целями.

malgca
источник
Спасибо за программу, но есть ли VBScript? PowerShell? Помогите пожалуйста как запустить? Я думаю, что программа поместит строки файла HD и обычные строки файла в 2 разных файла? но я хочу, чтобы xml имел окончательный список с HD, если он есть, и нормально, если нет HD. В новом файле должны быть удалены только строки файла из XML.
Angelo
Извините @ Анджело, это PowerShell. Вы правы насчет сценария, помещающего вещи в два разных файла. Вы хотите, чтобы текущий XML сохранял файлы HD? А потом отдельный файл с удаленным кодом? Если это так, пожалуйста, смотрите мою правку
malgca
Нет, извините, пожалуйста, все в порядке. Я объясняю Николь выше - некоторые файлы имеют нормальную версию и версию HD, некоторые только обычные без HD. Если 2 версия, я хочу только HD в XML и нормальный в новом файле. Если только 1 версия - нормальная или HD - я хочу в xml, как раньше.
Angelo