Кіріспе

Стандартты UNIX файлдарды салыстыруға арналған құрал

Португалиялық Еңбек ордені

Unix операциялық жүйелер отбасындағы команда екі файлды ортақ және ерекше жолдар бойынша салыстыру үшін қолданылатын құрал. Бұл команда POSIX стандартында белгіленген. Ол 1980 жылдардың ортасынан соңына дейін Unix-қа ұқсас операциялық жүйелерде кеңінен қолданылып келеді.

Тарих

Ли Э. МакМахон жазған, алғаш рет Unix 4 нұсқасында пайда болды. GNU coreutils жинағына енген нұсқасын Ричард Столлман мен Дэвид Маккензи жазды.

Қолданылуы

екі файлды мәтін жолдары ретінде кіріс ретінде оқиды. бір файлды шығарады, онда үш баған болады. Бірінші екі бағанда бірінші және екінші файлға тән жолдар болады, ал соңғы бағанда екі файлға да ортақ жолдар болады. Бұл функционалдық жағынан бағандарды ажыратуға ұқсас, олар әдетте белгілі бір таңбамен бөлінеді. Егер кіріс файлдарында осы таңбадан басталатын жолдар болса, шығыс бағандары шатас болуы мүмкін. Тиімділік үшін, стандартты іске асырулар екі кіріс файлдың да бірдей жолдарды салыстыру ретімен, лексикалық тәртіпте реттелгенін күтеді. Бұл үшін sort (Unix) командасын қолдануға болады. Алгоритм ағымдағы жергілікті тілдің (locale) салыстыру реттілігін пайдаланады. Егер файлдардағы жолдар ағымдағы жергілікті тілге сәйкес реттелмесе, нәтиже болжай алмайды.

Қайтару коды

, айырмашылығы, екі файлдың арақатынасына қатысты қайтарылған кодтың логикалық мағынасы жоқ. 0 коды сәтті орындалғанын, 0-ден жоғары код өңдеу барысында қателіктер болғанын білдіреді.

Салыстыру

Жалпы алғанда, бұл қарапайым құралдан күштірек. Ал қарапайым құрал скрипттерде қолдануға жақсырақ. және арасындағы басты айырмашылық – сұрыптаудан бұрынғы жолдардың реті туралы ақпаратты жояды. және арасындағы шағын айырмашылық – бұл екі файлдың арасындағы жолдың "өзгергенін" көрсетуге тырыспайды; жолдар "#1 файлдан", "#2 файлдан" немесе "екі файлда да" бағандарында көрсетіледі. Егер екі жолдың, тіпті оларда ұсақ-түйек айырмашылықтар болса да, әртүрлі деп есептелуін қаласаңыз, бұл пайдалы болуы мүмкін.

Басқа нұсқалар

үш бағанның кез келгенін жасыруға арналған команда жолы опциялары бар. Бұл скрипттерді жазу үшін ыңғайлы. Сонымен қатар, стандарттық кірістен бір файлды (бірақ екі файлды емес) оқу опциясы да бар.

Шектері

Келесі шығыс жолы жазылмас бұрын, әрбір кіріс файлынан толық жолға дейін буферде сақталуы керек. Кейбір іске асырулар жүйелік жады жеткілікті болса, жол ұзындығының шектерін қоймайтын функция арқылы жолдарды оқиды. Басқа іске асырулар функциясы арқылы жолдарды оқиды. Бұл функция тұрақты буферді қажет етеді. Осы іске асырулар үшін буфер көбінесе POSIX макросы бойынша өлшемделеді.