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"
Когда у меня возникает эта проблема, я отключу IPv6 в Ubuntu и исправляю проблему, чтобы сделать это, выполните следующие действия:
Чтобы отключить IPv6, вам нужно открыть /etc/sysctl.conf, используя любой текстовый редактор и добавьте следующие строки в конец:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
Если IPv6 все еще включен, проблема в том, что sysctl.conf все еще не активирована.
В этом (Ctrl + Alt + T) и введите команду:
sudo sysctl -p
Выход будет очень похож на эти 3 строки:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
После этого , execute:
$ cat /proc/sys/net/ipv6/conf/all/disable_ipv6
Если вы видите 1 на выходе, то IPv6 был успешно отключен.
1
Надеюсь, что это поможет.
Когда у меня возникает эта проблема, я отключу IPv6 в Ubuntu и исправляю проблему, чтобы сделать это, выполните следующие действия:
Чтобы отключить IPv6, вам нужно открыть /etc/sysctl.conf, используя любой текстовый редактор и добавьте следующие строки в конец:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
Если IPv6 все еще включен, проблема в том, что sysctl.conf все еще не активирована.
В этом (Ctrl + Alt + T) и введите команду:
sudo sysctl -p
Выход будет очень похож на эти 3 строки:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
После этого , execute:
$ cat /proc/sys/net/ipv6/conf/all/disable_ipv6
Если вы видите 1 на выходе, то IPv6 был успешно отключен.
1
Надеюсь, что это поможет.
Когда у меня возникает эта проблема, я отключу IPv6 в Ubuntu и исправляю проблему, чтобы сделать это, выполните следующие действия:
Чтобы отключить IPv6, вам нужно открыть /etc/sysctl.conf, используя любой текстовый редактор и добавьте следующие строки в конец:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
Если IPv6 все еще включен, проблема в том, что sysctl.conf все еще не активирована.
В этом (Ctrl + Alt + T) и введите команду:
sudo sysctl -p
Выход будет очень похож на эти 3 строки:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
После этого , execute:
$ cat /proc/sys/net/ipv6/conf/all/disable_ipv6
Если вы видите 1 на выходе, то IPv6 был успешно отключен.
1
Надеюсь, что это поможет.