Этот процесс больше не делает функционал Volar Green функциональным в Ubuntu 14.04. Прошивка была перепрограммирована на прошивку dvb-usb-it9135-02 вместо прошивки dvb-usb-af9035, которая полностью сломала мою 4-х тюнерную систему. Используется для работы с 14.04, не сейчас.
Я думаю, что dvb-usb-it9135 является правильной прошивкой для Volar Black, и предполагается, что она также правильна для Volar Green.
The Green and the Black это разные чипы - просто !!!! спросите любого меерката.
Или вы можете использовать Meld Diff
. Meld помогает сравнивать файлы, каталоги и проекты, контролируемые версиями. Он обеспечивает двух- и трехстороннее сравнение файлов и каталогов и поддерживает многие популярные системы управления версиями.Установите, запустив:
sudo apt-get install meld
Ваш пример:
Сравнить каталог:
[d7 ]
Пример с полным текстом:
Вы можете использовать vimdiff.
Пример:
vimdiff file1 file2
Meld - действительно отличный инструмент. Но вы также можете использовать diffuse для визуального сравнения двух файлов:
diffuse file1.txt file2.txt
Litteraly, придерживающийся вопроса (file1, file2, outputfile с сообщением «has changed»), скрипт ниже работает.
Скопируйте сценарий в пустой файл, сохраните его как compare.py, сделайте это исполняемый, запустите его командой:
/path/to/compare.py <file1> <file2> <outputfile>
Сценарий:
#!/usr/bin/env python
import sys
file1 = sys.argv[1]; file2 = sys.argv[2]; outfile = sys.argv[3]
def readfile(file):
with open(file) as compare:
return [item.replace("\n", "").split(" ") for item in compare.readlines()]
data1 = readfile(file1); data2 = readfile(file2)
mismatch = [item[0] for item in data1 if not item in data2]
with open(outfile, "wt") as out:
for line in mismatch:
out.write(line+" has changed"+"\n")
С помощью нескольких дополнительных строк вы можете сделать либо печать в выходной файл, либо терминал, в зависимости от того, установлен ли выходной файл:
Для печати в файл:
/path/to/compare.py <file1> <file2> <outputfile>
Для печати в окне терминала:
/path/to/compare.py <file1> <file2>
Сценарий:
#!/usr/bin/env python
import sys
file1 = sys.argv[1]; file2 = sys.argv[2]
try:
outfile = sys.argv[3]
except IndexError:
outfile = None
def readfile(file):
with open(file) as compare:
return [item.replace("\n", "").split(" ") for item in compare.readlines()]
data1 = readfile(file1); data2 = readfile(file2)
mismatch = [item[0] for item in data1 if not item in data2]
if outfile != None:
with open(outfile, "wt") as out:
for line in mismatch:
out.write(line+" has changed"+"\n")
else:
for line in mismatch:
print line+" has changed"
Вы можете использовать команду cmp: выход
cmp -b "File_1.txt" "File_2.txt"
будет
a b differ: byte 25, line 3 is 125 U 116 N
FWIW, мне больше нравится то, что я получаю из бок о бок, вывод из diff
diff -y -W 120 File_1.txt File_2.txt
даст что-то вроде:
User1 US User1 US
User2 US User2 US
User3 US | User3 NG
Простым способом является использование colordiff, который ведет себя как diff, но раскрашивает его вывод. Это очень полезно для чтения diff. Используя ваш пример,
$ colordiff -u File_1.txt File_2.txt
--- File_1.txt 2016-12-24 17:59:17.409490554 -0500
+++ File_2.txt 2016-12-24 18:00:06.666719659 -0500
@@ -1,3 +1,3 @@
User1 US
User2 US
-User3 US
+User3 NG
, где опция u дает унифицированный diff. Вот как выглядит раскрашенный diff:
Установите colordiff, запустив sudo apt-get install colordiff.
Если вам не нужно знать, какие части файлов отличаются, вы можете использовать контрольную сумму файла. Существует много способов сделать это, используя md5sum или sha256sum. В принципе, каждый из них выводит строку, в которую помещается содержимое хэша. Если оба файла одинаковы, их хэш будет таким же. Это часто используется при загрузке программного обеспечения, например, в Ubuntu. Они часто используются для проверки целостности загруженного контента.
Рассмотрим сценарий ниже, где вы можете дать два файла в качестве аргументов, и файл скажет вам, являются ли они одинаковыми или нет. [!d2 ]
#!/bin/bash
# Check if both files exist
if ! [ -e "$1" ];
then
printf "%s doesn't exist\n" "$1"
exit 2
elif ! [ -e "$2" ]
then
printf "%s doesn't exist\n" "$2"
exit 2
fi
# Get checksums of eithe file
file1_sha=$( sha256sum "$1" | awk '{print $1}')
file2_sha=$( sha256sum "$2" | awk '{print $1}')
# Compare the checksums
if [ "x$file1_sha" = "x$file2_sha" ]
then
printf "Files %s and %s are the same\n" "$1" "$2"
exit 0
else
printf "Files %s and %s are different\n" "$1" "$2"
exit 1
fi
Пример прогона:
$ ./compare_files.sh /etc/passwd ./passwd_copy.txt
Files /etc/passwd and ./passwd_copy.txt are the same
$ echo $?
0
$ ./compare_files.sh /etc/passwd /etc/default/grub
Files /etc/passwd and /etc/default/grub are different
$ echo $?
1
Кроме того, есть команда comm, которая сравнивает два отсортированных файла и дает результат в 3-х столбцах : столбец 1 для элементов, уникальных для файла # 1, столбец 2 для элементов, уникальных для файла # 2, и столбца 3 для элементов, присутствующих в обоих файлах.
Чтобы подавить любой столбец, вы можете использовать переключатели -1, -2 и -3.
Ниже вы можете увидеть скриншот команды в действии.
Существует только одно требование: файлы должны быть отсортированы для правильной их сопоставления. Для этой цели может использоваться команда sort. Bellow - это еще один снимок экрана, где файлы сортируются, а затем сравниваются. Строки, начинающиеся с левого звонка только в File_1, строки, начинающиеся с столбца 2, принадлежат только File_2