CMD/BAT - [решено] сравнить строки в текстовых файлах

Аватара пользователя
sov44

Re: CMD/BAT - [решено] сравнить строки в текстовых файлах

Сообщение sov44 »

sov44, мне не «в лом», как предположил коллега greg zakharov. Но что там расписывать? Код прост, как пробка. Никаких конкретных вопросов по коду задано не было.
Аватара пользователя
DJ Mogarych

Re: CMD/BAT - [решено] сравнить строки в текстовых файлах

Сообщение DJ Mogarych »

Powershell:



Код:

Код: Выделить всё

$a = & ffprobe -hide_banner -select_streams v -show_streams -v error -i "D:\Видео\1.mp4" |select-string codec_name,has_b_frames,pix_fmt
$b = & ffprobe -hide_banner -select_streams v -show_streams -v error -i "D:\Видео\2.mp4" |select-string codec_name,has_b_frames,pix_fmt
diff $a $b

Вывод допилите как вам нужно.
Аватара пользователя
Konstantinkn

Re: CMD/BAT - [решено] сравнить строки в текстовых файлах

Сообщение Konstantinkn »

Спасибо всем за Ваши ответы.



Хочу вернуться к этой теме.



Я сделал bat-файл.



Код:

Код: Выделить всё

ffprobe -v 32 -print_format default -show_format -show_streams -hide_banner 1.mp4  > 1.txt
ffprobe -v 32 -print_format default -show_format -show_streams -hide_banner 2.mp4  > 2.txt
fc /l /n 1.txt 2.txt > result-of-checking.txt

В файле result-of-checking.txt оказываются строки и из файла 2.txt, и из файла 1.txt.




Цитата:



***** 1.txt

33: time_base=1/90000

34: start_pts=0

35: start_time=0.000000

36: duration_ts=274777200

37: duration=3053.080000

38: bit_rate=1167100

39: max_bit_rate=N/A

***** 2.TXT

33: time_base=1/90000

34: start_pts=61200

35: start_time=0.680000

36: duration_ts=34682400

37: duration=385.360000

38: bit_rate=1103399

39: max_bit_rate=N/A



Я хочу, чтобы в файле result-of-checking.txt были строки только из файла 2.txt, те строки, которые отличаются от строк файла 1.txt. Как это сделать?
Аватара пользователя
alpap

Re: CMD/BAT - [решено] сравнить строки в текстовых файлах

Сообщение alpap »

Вывод в 3.txt одинаковых строк из 1.txt и 2.txt



Код:

Код: Выделить всё

@echo off
>"3.txt" findstr /xlg:"2.txt" "1.txt"
pause

Вывод в 3.txt строк из 2.txt, которых нет в 1.txt



Код:

Код: Выделить всё

@echo off
>"3.txt" findstr /vxlg:"1.txt" "2.txt"
pause

Общий



Код:

Код: Выделить всё

@echo off
>>"3.txt" (
 echo Этого нет в "1.txt"
 findstr /vlg:"1.txt" "2.txt"
 echo:
 echo Этого нет в "2.txt"
 findstr /vlg:"2.txt" "1.txt"
)
pause
Аватара пользователя
DJ Mogarych

Re: CMD/BAT - [решено] сравнить строки в текстовых файлах

Сообщение DJ Mogarych »

Powershell



Код:

Код: Выделить всё

$a = & ffprobe -v 32 -print_format default -show_format -show_streams -hide_banner -i "C:\temp\1.mp4"
$b = & ffprobe -v 32 -print_format default -show_format -show_streams -hide_banner -i "C:\temp\2.mp4"
(diff $a $b |? SideIndicator -eq '=>').Inputobject |sort > C:\temp\result-of-checking.txt
Аватара пользователя
alpap

Re: CMD/BAT - [решено] сравнить строки в текстовых файлах

Сообщение alpap »

если на PowerShell, тогда по типу моего "Общий" на cmd



Код:

Код: Выделить всё

$file1 = 'C:\1.txt'
$file2 = 'C:\2.txt'
$fileZ = 'C:\3.txt'
$z = compare $(gc $file1) $(gc $file2)
"Этого нет в $file1"                              >> $fileZ
$z.where({$_.SideIndicator -eq '=>'}).InputObject >> $fileZ
"Этого нет в $file2"                              >> $fileZ
$z.where({$_.SideIndicator -eq '
Аватара пользователя
Konstantinkn

Re: CMD/BAT - [решено] сравнить строки в текстовых файлах

Сообщение Konstantinkn »

alpap, DJ Mogarych, спасибо. Принял к сведению.




Цитата alpap:



Вывод в 3.txt строк из 2.txt, которых нет в 1.txt
CMD/BAT - [решено] сравнить строки в текстовых файлах






Код:

Код: Выделить всё

@echo off
>"3.txt" findstr /vxlg:"1.txt" "2.txt"
pause

alpap, как сделать, чтобы строки в файлах 1.txt, 2.txt, 3.txt были пронумерованы?
Аватара пользователя
alpap

Re: CMD/BAT - [решено] сравнить строки в текстовых файлах

Сообщение alpap »

Цитата Konstantinkn:



чтобы строки в файлах 1.txt, 2.txt, 3.txt были пронумерованы?
CMD/BAT - [решено] сравнить строки в текстовых файлах




только в "3.txt" и непосредственно найденные строки



Код:

Код: Выделить всё

@echo off
>>"3.txt" (
 echo Этого нет в "1.txt"
 findstr /nvlg:"1.txt" "2.txt"
 echo:
 echo Этого нет в "2.txt"
 findstr /nvlg:"2.txt" "1.txt"
)
pause

иначе - использовать AkelPad, как я или другой "правильный" текстовый редактор
Ответить

Вернуться в «Скриптовые языки администрирования Windows»