Показать полную графическую версию : [решено] сравнить строки в текстовых файлах
sov44, мне не «в лом», как предположил коллега greg zakharov. Но что там расписывать? Код прост, как пробка. Никаких конкретных вопросов по коду задано не было.
DJ Mogarych
30-10-2020, 09:57
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
13-04-2021, 11:52
Спасибо всем за Ваши ответы.
Хочу вернуться к этой теме.
Я сделал 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. Как это сделать?
Вывод в 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
13-04-2021, 19:21
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
если на 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 '<='}).InputObject >> $fileZ
Konstantinkn
15-04-2021, 15:09
alpap, DJ Mogarych, спасибо. Принял к сведению.
Вывод в 3.txt строк из 2.txt, которых нет в 1.txt »
@echo off
>"3.txt" findstr /vxlg:"1.txt" "2.txt"
pause
alpap, как сделать, чтобы строки в файлах 1.txt, 2.txt, 3.txt были пронумерованы?
чтобы строки в файлах 1.txt, 2.txt, 3.txt были пронумерованы? »
только в "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, как я или другой "правильный" текстовый редактор
Konstantinkn
16-04-2021, 21:16
alpap, спасибо. Принял к сведению.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.