У меня есть два текстовых файла. Одним из них является набор частот, которые я получаю с использованием RTL SDR. Эти частоты доступны в моем регионе. Другая база данных всех зарегистрированных частот в регионе. Я стремлюсь найти незарегистрированную частоту. Моя база данных:

ARFCN:  987, Freq:  927.6M, CID: 36233, LAC:  7713, MCC: 410, MNC:   4, Pwr: -37
ARFCN:  989, Freq:  928.0M, CID: 57501, LAC:  7716, MCC: 410, MNC:   4, Pwr: -45
ARFCN:  992, Freq:  928.6M, CID: 58531, LAC:  7716, MCC: 410, MNC:   4, Pwr: -42
ARFCN:  994, Freq:  929.0M, CID: 36231, LAC:  7713, MCC: 410, MNC:   4, Pwr: -31
ARFCN:  995, Freq:  929.2M, CID: 36232, LAC:  7713, MCC: 410, MNC:   4, Pwr: -39
ARFCN:  999, Freq:  930.0M, CID: 47081, LAC:  7716, MCC: 410, MNC:   4, Pwr: -36
ARFCN: 1004, Freq:  931.0M, CID: 36231, LAC:  7713, MCC: 410, MNC:   4, Pwr: -31
ARFCN: 1008, Freq:  931.8M, CID: 47103, LAC:  7713, MCC: 410, MNC:   4, Pwr: -37
ARFCN: 1010, Freq:  932.2M, CID: 40691, LAC:  7716, MCC: 410, MNC:   4, Pwr: -48
ARFCN: 1011, Freq:  932.4M, CID: 47102, LAC:  7713, MCC: 410, MNC:   4, Pwr: -50
ARFCN:    1, Freq:  935.2M, CID: 13013, LAC: 10421, MCC: 410, MNC:   1, Pwr: -65
ARFCN:    2, Freq:  935.4M, CID: 30889, LAC: 10421, MCC: 410, MNC:   1, Pwr: -60
ARFCN:    3, Freq:  935.6M, CID: 30928, LAC: 10470, MCC: 410, MNC:   1, Pwr: -45
ARFCN:    3, Freq:  935.6M, CID: 33272, LAC: 10421, MCC: 410, MNC:   1, Pwr: -65
ARFCN:    6, Freq:  936.2M, CID: 10096, LAC: 10470, MCC: 410, MNC:   1, Pwr: -27
ARFCN:   10, Freq:  937.0M, CID: 30911, LAC: 10470, MCC: 410, MNC:   1, Pwr: -47
ARFCN:   25, Freq:  940.0M, CID: 14429, LAC: 51136, MCC: 410, MNC:   3, Pwr: -44
ARFCN:   49, Freq:  944.8M, CID: 15535, LAC: 52207, MCC: 410, MNC:   3, Pwr: -27
ARFCN:   51, Freq:  945.2M, CID: 12408, LAC: 51136, MCC: 410, MNC:   3, Pwr: -46
ARFCN:   54, Freq:  945.8M, CID: 35535, LAC: 52207, MCC: 410, MNC:   3, Pwr: -49
ARFCN:   56, Freq:  946.2M, CID: 25535, LAC: 52207, MCC: 410, MNC:   3, Pwr: -51
ARFCN:   58, Freq:  946.6M, CID: 12941, LAC: 51136, MCC: 410, MNC:   3, Pwr: -35
ARFCN:   60, Freq:  947.0M, CID: 18662, LAC: 51136, MCC: 410, MNC:   3, Pwr: -58
ARFCN:   62, Freq:  947.4M, CID: 32941, LAC: 51136, MCC: 410, MNC:   3, Pwr: -52
ARFCN:   64, Freq:  947.8M, CID:  7673, LAC:   470, MCC: 410, MNC:   6, Pwr: -43
ARFCN:   66, Freq:  948.2M, CID: 10001, LAC:   470, MCC: 410, MNC:   6, Pwr: -27
ARFCN:   68, Freq:  948.6M, CID: 12941, LAC: 51136, MCC: 410, MNC:   3, Pwr: -50
ARFCN:   70, Freq:  949.0M, CID: 15132, LAC:   470, MCC: 410, MNC:   6, Pwr: -34
ARFCN:   71, Freq:  949.2M, CID:  5373, LAC:   470, MCC: 410, MNC:   6, Pwr: -44
ARFCN:   75, Freq:  950.0M, CID:  6561, LAC:   470, MCC: 410, MNC:   6, Pwr: -45
ARFCN:   79, Freq:  950.8M, CID: 10003, LAC:   470, MCC: 410, MNC:   6, Pwr: -48
ARFCN:   82, Freq:  951.4M, CID: 10002, LAC:   470, MCC: 410, MNC:   6, Pwr: -34
ARFCN:   86, Freq:  952.2M, CID:     0, LAC:   470, MCC: 410, MNC:   6, Pwr: -57
ARFCN:  117, Freq:  958.4M, CID: 20096, LAC: 10470, MCC: 410, MNC:   1, Pwr: -28
ARFCN:  119, Freq:  958.8M, CID: 12549, LAC: 10470, MCC: 410, MNC:   1, Pwr: -41
ARFCN:  120, Freq:  959.0M, CID: 30096, LAC: 10470, MCC: 410, MNC:   1, Pwr: -31
ARFCN:  122, Freq:  959.4M, CID: 33783, LAC: 10421, MCC: 410, MNC:   1, Pwr: -42
ARFCN:  124, Freq:  959.8M, CID: 42549, LAC: 10470, MCC: 410, MNC:   1, Pwr: -33

Принимая во внимание, что мой полученный файл частоты:

Script started on 2020-07-19 14:55:19+0500
linux; GNU C++ version 7.3.0; Boost_106501; UHD_003.010.003.000-0-unknown


ARFCN: 1004, Freq:  931.0M, CID: 36231, LAC:  7713, MCC: 410, MNC:   4, Pwr: -34
ARFCN: 1008, Freq:  931.8M, CID: 47103, LAC:  7713, MCC: 410, MNC:   4, Pwr: -30
ARFCN:    6, Freq:  936.2M, CID: 10096, LAC: 10470, MCC: 410, MNC:   1, Pwr: -27
ARFCN:   10, Freq:  937.0M, CID: 30911, LAC: 10470, MCC: 410, MNC:   1, Pwr: -33
ARFCN:   49, Freq:  944.8M, CID: 15535, LAC: 52207, MCC: 410, MNC:   3, Pwr: -28
ARFCN:   56, Freq:  946.2M, CID:     0, LAC:     0, MCC:   0, MNC:   0, Pwr: -50
ARFCN:   66, Freq:  948.2M, CID: 10001, LAC:   470, MCC: 410, MNC:   6, Pwr: -27
ARFCN:   79, Freq:  950.8M, CID: 10003, LAC:   470, MCC: 410, MNC:   6, Pwr: -43
ARFCN:   82, Freq:  951.4M, CID: 10002, LAC:   470, MCC: 410, MNC:   6, Pwr: -36
ARFCN:  100, Freq:  955.0M, CID:   667, LAC:  1007, MCC: 410, MNC:   3, Pwr: -27

Script done on 2020-07-19 14:58:05+0500

Видно, что оба списка не отсортированы. Теперь намереваемся создать новый текстовый файл или, по крайней мере, просто вывод на терминал ubuntu, чтобы отображалась частота, присутствующая в моем текущем списке частот, но не в базе данных. До сих пор я не смог найти взломать. Я написал сценарий оболочки:

#! /bin/sh
clear
echo "                      */\*/\*/\*/\*/\*/\*/\*/\*/\*/\*/\*/\* "
echo "                      C O N F L I C T I N G   A R F C N s "
echo "                      *\/*\/*\/*\/*\/*\/*\/*\/*\/*\/*\/*\/* "
echo UNIQUE BTS TOWERS ARE


import bitarray
r = bitarray.bitarray(5000000000)

for line in open(alpha.txt):
    r[int(line)] = True

for line in open(Database.txt):
    if r[int(line)]:
        print line
#set(open(alpha.txt)) & set(open(Database.txt))
#sort Database.txt alpha.txt | uniq -u
#comm -3 alpha.txt Database.txt
#   Print lines in alpha.txt not in Database.txt
#words1 = set(open("Database.txt").read().split())
#words2 = set(open("alpha.txt").read().split())

#duplicates = words1.intersection(words2)
#uniques = words1.difference(words2).union(words2.difference(words1))

#print "Duplicates(%d):%s"%(len(duplicates),duplicates)
#print "\nUniques(%d):%s"%(len(uniques),uniques)


echo "The scan GSM frequencies are collected"
notify-send "COLLECTED!"
echo DONE!

Я перепробовал все эти альтернативы, но ни одна из них не сработала.

-1
mosterup 19 Июл 2020 в 15:36

2 ответа

db = open('Database.txt', 'r') 
dbLines = db.readlines()
alpha = open('alpha.txt', 'r') 
alphaLines = alpha.readlines()
output=[line for line in alphaLines if line not in  dbLines and line.startswith('ARFCN') ]

Выход:

    ['ARFCN: 1004, Freq:  931.0M, CID: 36231, LAC:  7713, MCC: 410, MNC:   4, Pwr: -34\n',
 'ARFCN: 1008, Freq:  931.8M, CID: 47103, LAC:  7713, MCC: 410, MNC:   4, Pwr: -30\n',
 'ARFCN:   10, Freq:  937.0M, CID: 30911, LAC: 10470, MCC: 410, MNC:   1, Pwr: -33\n',
 'ARFCN:   49, Freq:  944.8M, CID: 15535, LAC: 52207, MCC: 410, MNC:   3, Pwr: -28\n',
 'ARFCN:   56, Freq:  946.2M, CID:     0, LAC:     0, MCC:   0, MNC:   0, Pwr: -50\n',
 'ARFCN:   79, Freq:  950.8M, CID: 10003, LAC:   470, MCC: 410, MNC:   6, Pwr: -43\n',
 'ARFCN:   82, Freq:  951.4M, CID: 10002, LAC:   470, MCC: 410, MNC:   6, Pwr: -36\n',
 'ARFCN:  100, Freq:  955.0M, CID:   667, LAC:  1007, MCC: 410, MNC:   3, Pwr: -27\n']
0
Mathew Alexander 19 Июл 2020 в 12:55

Python 3. Принимает пересечение двух наборов линий. Печатает их.

print(*(set(open('alpha.txt')) & set(open('Databse.txt'))), sep='')

Это работает до тех пор, пока оба ваших файла помещаются в память.

0
Steven Rumbalski 19 Июл 2020 в 13:36