Войти

Показать полную графическую версию : [решено] сравнить строки в текстовых файлах


Страниц : 1 [2]

Iska
29-10-2020, 19:01
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. Как это сделать?

alpap
13-04-2021, 13:16
Вывод в 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

alpap
14-04-2021, 13:45
если на 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 были пронумерованы?

alpap
16-04-2021, 05:30
чтобы строки в файлах 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