[{"data":1,"prerenderedAt":805},["ShallowReactive",2],{"blog-uk-how-to-remove-duplicate-lines-vscode":3},{"id":4,"title":5,"alt":6,"author":7,"body":8,"category":766,"description":767,"extension":768,"faq":769,"image":791,"meta":792,"navigation":793,"path":794,"publishedAt":795,"seo":796,"stem":797,"tags":798,"__hash__":804},"blog\u002Fuk\u002Fhow-to-remove-duplicate-lines-vscode.md","Як видалити дублікати рядків у VS Code (і онлайн)","Вікно термінала, де підсвічені й видалені дублікати рядків командою awk, сланцеве тло, зелений акцентний текст","Vibe Apps Pro Team",{"type":9,"value":10,"toc":753},"minimark",[11,15,18,21,26,39,80,86,88,92,95,100,138,149,176,181,200,206,211,222,228,230,234,243,251,257,308,326,334,336,340,347,350,352,356,366,404,407,409,413,595,602,604,608,616,619,641,651,663,665,669,672,694,697,699,703,724,726,730,736,747,749],[12,13,14],"p",{},"VS Code вміє багато речей. Видалення дублікатів рядків — не одна з них, принаймні не рідно. У Command Palette немає пункту «Remove Duplicates». Ніколи й не було.",[12,16,17],{},"Якщо ти доігрався до роздутого конфіг-файлу, CSV з повтореними рядками чи лог-дампу, напханого однаковими записами, ти вже шукав команду, якої не існує. Ось пʼять методів, що реально працюють, упорядкованих за тим, коли по який тягнутися.",[19,20],"hr",{},[22,23,25],"h2",{"id":24},"метод-1-обхід-через-сортування-vs-code-без-розширень","Метод 1: обхід через сортування (VS Code, без розширень)",[12,27,28,29,33,34,38],{},"Це підхід із нульовими залежностями. Він працює, коли ",[30,31,32],"strong",{},"порядок рядків не має значення"," — наприклад, записи ",[35,36,37],"code",{},".gitignore",", списки залежностей, файли ключових слів.",[40,41,42,46,57,67,74,77],"ol",{},[43,44,45],"li",{},"Відкрий файл у VS Code",[43,47,48,49,52,53,56],{},"Виділи все: ",[35,50,51],{},"Ctrl+A"," (Windows\u002FLinux) або ",[35,54,55],{},"Cmd+A"," (macOS)",[43,58,59,60,63,64],{},"Відкрий Command Palette: ",[35,61,62],{},"Ctrl+Shift+P"," \u002F ",[35,65,66],{},"Cmd+Shift+P",[43,68,69,70,73],{},"Запусти ",[30,71,72],{},"Sort Lines Ascending"," (A→Z)",[43,75,76],{},"Дублікати рядків тепер сусідні — вони візуально очевидні",[43,78,79],{},"Для маленьких файлів: видали послідовні повтори вручну",[12,81,82,83,85],{},"Обмеження очевидне: це знищує твоє початкове впорядкування. Для ",[35,84,37],{}," чи списку імпортів це нормально. Для лог-файлу, де важлива послідовність, це непрохідний варіант.",[19,87],{},[22,89,91],{"id":90},"метод-2-однорядковик-у-терміналі-порядок-збережено","Метод 2: однорядковик у терміналі (порядок збережено)",[12,93,94],{},"Для файлів, де порядок важить, це правильний підхід. Одна команда, без редактора.",[12,96,97],{},[30,98,99],{},"macOS \u002F Linux — зберігає порядок:",[101,102,107],"pre",{"className":103,"code":104,"language":105,"meta":106,"style":106},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","awk '!seen[$0]++' input.txt > output.txt\n","bash","",[35,108,109],{"__ignoreMap":106},[110,111,114,118,122,126,129,132,135],"span",{"class":112,"line":113},"line",1,[110,115,117],{"class":116},"sBMFI","awk",[110,119,121],{"class":120},"sMK4o"," '",[110,123,125],{"class":124},"sfazB","!seen[$0]++",[110,127,128],{"class":120},"'",[110,130,131],{"class":124}," input.txt",[110,133,134],{"class":120}," >",[110,136,137],{"class":124}," output.txt\n",[12,139,140,141,144,145,148],{},"Це елегантно. ",[35,142,143],{},"seen[$0]"," — це асоціативний масив із ключем за повним вмістом рядка. ",[35,146,147],{},"!"," інвертує істинність — рядок друкується лише першого разу, коли трапляється. Кожен наступний дублікат тихо відкидається. Порядок збережено, нуль конфігурації.",[150,151,152],"blockquote",{},[12,153,154,157,158,160,161,164,165,168,169,172,173,175],{},[30,155,156],{},"Примітка щодо macOS:"," системний ",[35,159,117],{}," на macOS — це One True Awk, який може поводитися неочікувано зі складним Unicode-вмістом чи закінченнями рядків ",[35,162,163],{},"\\r\\n"," у стилі Windows. Якщо маєш справу з тим чи іншим, встанови GNU awk через Homebrew (",[35,166,167],{},"brew install gawk",") і підстав ",[35,170,171],{},"gawk"," замість ",[35,174,117],{}," у команді вище.",[12,177,178],{},[30,179,180],{},"macOS \u002F Linux — найшвидше, але порядок НЕ збережено:",[101,182,184],{"className":103,"code":183,"language":105,"meta":106,"style":106},"sort -u input.txt > output.txt\n",[35,185,186],{"__ignoreMap":106},[110,187,188,191,194,196,198],{"class":112,"line":113},[110,189,190],{"class":116},"sort",[110,192,193],{"class":124}," -u",[110,195,131],{"class":124},[110,197,134],{"class":120},[110,199,137],{"class":124},[12,201,202,205],{},[35,203,204],{},"sort -u"," — це реалізація на C із зовнішнім сортуванням злиттям. Для файлів понад 500 000 рядків вона помітно швидша за awk. Але вона впорядковує вивід за абеткою, що робить її неправильною для структурованих даних.",[12,207,208],{},[30,209,210],{},"Windows PowerShell — зберігає порядок:",[101,212,216],{"className":213,"code":214,"language":215,"meta":106,"style":106},"language-powershell shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","Get-Content .\\input.txt | Select-Object -Unique | Set-Content .\\output.txt\n","powershell",[35,217,218],{"__ignoreMap":106},[110,219,220],{"class":112,"line":113},[110,221,214],{},[12,223,224,227],{},[35,225,226],{},"Select-Object -Unique"," лишає перше входження й відкидає наступні збіги. За поведінкою еквівалентно підходу з awk.",[19,229],{},[22,231,233],{"id":232},"метод-3-regex-find-replace-лише-послідовні-дублікати","Метод 3: regex Find & Replace (лише послідовні дублікати)",[12,235,236,237,242],{},"Якщо твої дублікати йдуть поспіль, ",[238,239,241],"a",{"href":240},"\u002Ffind-replace","інструмент Пошук і заміна"," може зловити їх регуляркою. Цей патерн матчить послідовно повторені рядки:",[101,244,249],{"className":245,"code":247,"language":248},[246],"language-text","^(.+)(\\r?\\n\\1)+$\n","text",[35,250,247],{"__ignoreMap":106},[12,252,253,254],{},"Замінити на: ",[35,255,256],{},"$1",[12,258,259,260,263,264,267,268,271,272,275,276,279,280,282,283,271,285,288,289,271,292,295,296,299,300,303,304,307],{},"У VS Code: ",[35,261,262],{},"Ctrl+H"," → увімкни regex (",[35,265,266],{},"Alt+R",") → встав патерн → заміни все. VS Code автоматично опрацьовує межі ",[35,269,270],{},"^"," і ",[35,273,274],{},"$"," рядок за рядком у Find & Replace — окремий multiline-прапор не потрібен, але ",[30,277,278],{},"режим Regex має бути ввімкнений",", інакше символи ",[35,281,270],{},", ",[35,284,274],{},[35,286,287],{},"\\n"," трактуються як літерали. Щоб ловити послідовні дублікати, що різняться регістром (наприклад, ",[35,290,291],{},"Error",[35,293,294],{},"error"," поспіль), вимкни ",[30,297,298],{},"Match Case"," (",[35,301,302],{},"Alt+C",") у панелі пошуку — інлайнові прапори ",[35,305,306],{},"(?i)"," у regex-рушії VS Code поводяться непослідовно між версіями й менш надійні за перемикач у панелі.",[12,309,310,313,314,318,319,322,323,325],{},[30,311,312],{},"Критичне обмеження:"," це видаляє лише ",[315,316,317],"em",{},"послідовні"," дублікати. Якщо ",[35,320,321],{},"line A"," зʼявляється на рядку 1 і рядку 100 з іншим вмістом поміж, ця регулярка проґавить його повністю. Підходи awk і ",[35,324,204],{}," сканують увесь файл незалежно від позиції.",[12,327,328,329,333],{},"Щодо синтаксису регулярок, груп захоплення й патернів lookahead — ",[238,330,332],{"href":331},"\u002Fblog\u002Fregex-find-replace-guide","гайд з регулярних виразів: пошук і заміна"," покриває все, що треба, щоб адаптувати цей патерн до складніших сценаріїв.",[19,335],{},[22,337,339],{"id":338},"метод-4-розширення-vs-code","Метод 4: розширення VS Code",[12,341,342,343,346],{},"Розширення ",[30,344,345],{},"«Remove Duplicate Lines»"," від Pauls0n додає рівно одну команду в Command Palette. Встанови його, виділи свій текст (чи весь файл), запусти команду — готово.",[12,348,349],{},"Компроміс: воно вимагає інсталяції й надання довіри. На машині, яку ти не контролюєш — корпоративний ноутбук, VPS, робоча станція колеги — це не завжди варіант. Для повторюваного робочого процесу на власній машині це найчистіше рідне рішення для VS Code.",[19,351],{},[22,353,355],{"id":354},"метод-5-браузерний-інструмент-без-налаштування-будь-яка-машина","Метод 5: браузерний інструмент (без налаштування, будь-яка машина)",[12,357,358,359,365],{},"Встав свій текст у наш ",[30,360,361],{},[238,362,364],{"href":363},"\u002Fremove-duplicates","інструмент Видалити дублікати"," — працює цілком у V8-рушії твого браузера, нуль даних кудись передається — і отримаєш миттєвий результат із контролами, яких методи в терміналі не дають:",[367,368,369,375,385,398],"ul",{},[43,370,371,374],{},[30,372,373],{},"Лишити перше чи лишити останнє"," входження (sort -u лишає «перше» довільно, на основі порядку сортування; тут це явно)",[43,376,377,380,381,384],{},[30,378,379],{},"Перемикач без урахування регістру"," (без гімнастики з ",[35,382,383],{},"tolower()"," в awk)",[43,386,387,390,391,271,394,397],{},[30,388,389],{},"Обрізати пробіли перед порівнянням"," (щоб ",[35,392,393],{},"\"  hello  \"",[35,395,396],{},"\"hello\""," згорнулися в один рядок)",[43,399,400,403],{},[30,401,402],{},"Прев'ю «до\u002Fпісля»"," зі зведенням за кількістю рядків",[12,405,406],{},"Для разової задачі чищення на будь-якій машині це найшвидший шлях. Відкрий браузер, встав, скопіюй результат.",[19,408],{},[22,410,412],{"id":411},"порівняння-методів","Порівняння методів",[414,415,416,441],"table",{},[417,418,419],"thead",{},[420,421,422,426,429,432,435,438],"tr",{},[423,424,425],"th",{},"Метод",[423,427,428],{},"Зберігає порядок",[423,430,431],{},"Без урахування регістру",[423,433,434],{},"Обрізає пробіли",[423,436,437],{},"Лише послідовні",[423,439,440],{},"Налаштування",[442,443,444,462,489,509,532,551,573],"tbody",{},[420,445,446,450,453,455,457,459],{},[447,448,449],"td",{},"Обхід через сортування у VS Code",[447,451,452],{},"Ні",[447,454,452],{},[447,456,452],{},[447,458,452],{},[447,460,461],{},"Жодного",[420,463,464,469,474,479,484,486],{},[447,465,466],{},[35,467,468],{},"awk '!seen[$0]++'",[447,470,471],{},[30,472,473],{},"Так",[447,475,476,477],{},"Додай ",[35,478,383],{},[447,480,481],{},[35,482,483],{},"gsub(\u002F^[ \\t]+|[ \\t]+$\u002F, \"\")",[447,485,452],{},[447,487,488],{},"Unix-термінал",[420,490,491,495,497,503,505,507],{},[447,492,493],{},[35,494,204],{},[447,496,452],{},[447,498,499,500],{},"прапор ",[35,501,502],{},"-f",[447,504,452],{},[447,506,452],{},[447,508,488],{},[420,510,511,516,520,525,527,529],{},[447,512,513,514],{},"PowerShell ",[35,515,226],{},[447,517,518],{},[30,519,473],{},[447,521,499,522],{},[35,523,524],{},"-CaseSensitive",[447,526,452],{},[447,528,452],{},[447,530,531],{},"Windows",[420,533,534,537,541,544,546,548],{},[447,535,536],{},"Розширення VS Code",[447,538,539],{},[30,540,473],{},[447,542,543],{},"Залежить",[447,545,543],{},[447,547,452],{},[447,549,550],{},"Інсталяція розширення",[420,552,553,556,560,565,569,571],{},[447,554,555],{},"Видалити дублікати онлайн",[447,557,558],{},[30,559,473],{},[447,561,562],{},[30,563,564],{},"Перемикач",[447,566,567],{},[30,568,564],{},[447,570,452],{},[447,572,461],{},[420,574,575,578,582,586,589,593],{},[447,576,577],{},"Regex Find & Replace",[447,579,580],{},[30,581,473],{},[447,583,499,584],{},[35,585,306],{},[447,587,588],{},"Вручну",[447,590,591],{},[30,592,473],{},[447,594,461],{},[12,596,597],{},[598,599],"img",{"alt":600,"src":601},"Дублікати рядків до й після дедуплікації — ліва колонка показує повторені червоні записи, права — чистий дедуплікований результат","\u002Farticles\u002Fhow-to-remove-duplicate-lines-vscode\u002Fsection-comparison.webp",[19,603],{},[22,605,607],{"id":606},"пастка-пробілів","Пастка пробілів",[12,609,610,611,271,613,615],{},"Це ловить розробників щоразу: ",[35,612,396],{},[35,614,393],{}," — не той самий рядок. Порівняння рядків за замовчуванням точне. Якщо твої дублікати мають непослідовні пробіли на початку чи в кінці — а це трапляється постійно зі вставленим вмістом, витягами з PDF та експортами з таблиць, — ти проженеш дедуплікацію й усе одно матимеш «дублікати».",[12,617,618],{},"Виправлення — спершу обрізати, а тоді дедуплікувати. Інструмент Видалити дублікати робить це чекбоксом. В awk:",[101,620,622],{"className":103,"code":621,"language":105,"meta":106,"style":106},"awk '{gsub(\u002F^[ \\t]+|[ \\t]+$\u002F, \"\")} !seen[$0]++' input.txt > output.txt\n",[35,623,624],{"__ignoreMap":106},[110,625,626,628,630,633,635,637,639],{"class":112,"line":113},[110,627,117],{"class":116},[110,629,121],{"class":120},[110,631,632],{"class":124},"{gsub(\u002F^[ \\t]+|[ \\t]+$\u002F, \"\")} !seen[$0]++",[110,634,128],{"class":120},[110,636,131],{"class":124},[110,638,134],{"class":120},[110,640,137],{"class":124},[12,642,643,645,646,650],{},[35,644,483],{}," зрізає пробіли й табуляції на початку й у кінці кожного рядка перед перевіркою на дублікат — не торкаючись нічого всередині рядка. Це означає, що значення, розділені табами, й поля CSV лишаються цілими. Утім, воно не зловить нерозривні пробіли (U+00A0) чи пробіли нульової ширини (U+200B) — ті переживають стандартне обрізання. Якщо чистиш текст, що прийшов із вставлення з PDF чи копіювання з вебу, спершу прожени його через ",[238,647,649],{"href":648},"\u002Fremove-spaces","Виправити пробіли",", щоб прибрати невидимі символи, а тоді дедуплікуй.",[12,652,653,654,658,659,662],{},"Глибший погляд на те, чому вставлений текст узагалі приходить забрудненим, — у ",[238,655,657],{"href":656},"\u002Fblog\u002Fhow-to-remove-extra-spaces-from-text-online","Як прибрати зайві пробіли з тексту онлайн",", де розглянуто проблему витягання з PDF на основі координат і варіанти пробільних символів Unicode, які ",[35,660,661],{},"str.trim()"," тихо проґавлює.",[19,664],{},[22,666,668],{"id":667},"коли-дублікати-рядків-симптом-а-не-проблема","Коли дублікати рядків — симптом, а не проблема",[12,670,671],{},"Якщо ти регулярно дедуплікуєш той самий файл, першопричина майже завжди — баг ідемпотентності вище за течією. Поширені патерни:",[367,673,674,681,688,691],{},[43,675,676,677,680],{},"Cron-завдання, що ",[30,678,679],{},"дописує"," у файл замість перезаписувати його",[43,682,683,684,687],{},"Агрегатор логів без ",[35,685,686],{},"DISTINCT"," у його SQL-запиті",[43,689,690],{},"Стартовий скрипт, що повторно додає конфіг-записи, які вже існують",[43,692,693],{},"Злиття Git, що продублювало контекстні рядки в погано розв'язаному конфлікті",[12,695,696],{},"Дедуплікувати вручну — це пластир. Полагодити генератор — це виправлення. Прожени дедуплікацію раз, щоб почистити поточний стан, а тоді простеж назад, чому вхід узагалі продукує повтори.",[19,698],{},[22,700,702],{"id":701},"інсайт-від-сеньйора-завжди-виводь-у-новий-файл","Інсайт від сеньйора: завжди виводь у новий файл",[150,704,705],{},[12,706,707,708,715,716,719,720,723],{},"🍌 ",[30,709,710,711,714],{},"Ніколи не запускай дедуплікацію просто на своїх продакшен-файлах ",[35,712,713],{},".env"," чи конфігу застосунку без бекапу."," Завжди спрямовуй вивід у новий файл — як у прикладах вище — і прожени швидкий ",[35,717,718],{},"diff input.txt output.txt",", перш ніж замінювати оригінал. Легко випадково згорнути два рядки, що виглядають однаково, але несуть структурно різні значення (як-от два записи ",[35,721,722],{},"DATABASE_URL",", що вказують на різні репліки). Спершу diff, заміна — другою.",[19,725],{},[22,727,729],{"id":728},"сортування-після-дедуплікації","Сортування після дедуплікації",[12,731,732,733,735],{},"Щойно дублікати зникли, можеш захотіти відсортувати рядки, що лишилися — корисно для файлів ",[35,734,713],{},", списків імпортів чи словникових файлів, де абеткове впорядкування полегшує читабельність і дифи на код-рев'ю.",[12,737,738,742,743,746],{},[238,739,741],{"href":740},"\u002Fsort-lines","Інструмент Сортувати рядки"," це робить: A→Z, Z→A, найкоротші спершу, найдовші спершу чи випадкове перемішування через Fisher-Yates. Рекомендований порядок завжди — ",[30,744,745],{},"спершу дедуплікувати, потім сортувати",", а не навпаки, бо інакше ти подаси відсортований вхід у порівняння, що може повестися не так, як очікуєш.",[19,748],{},[750,751,752],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":106,"searchDepth":754,"depth":754,"links":755},2,[756,757,758,759,760,761,762,763,764,765],{"id":24,"depth":754,"text":25},{"id":90,"depth":754,"text":91},{"id":232,"depth":754,"text":233},{"id":338,"depth":754,"text":339},{"id":354,"depth":754,"text":355},{"id":411,"depth":754,"text":412},{"id":606,"depth":754,"text":607},{"id":667,"depth":754,"text":668},{"id":701,"depth":754,"text":702},{"id":728,"depth":754,"text":729},"Dev Tools","У VS Code немає вбудованої команди дедуплікації. Ось 5 методів — обхід через сортування, awk-однорядковик, PowerShell, розширення й браузерний інструмент — з порівнянням порядку, швидкості й крайових випадків.","md",[770,773,776,779,782,785,788],{"question":771,"answer":772},"Чи має VS Code вбудовану команду «Remove Duplicate Lines»?","Ні — станом на 2026 рік у VS Code немає рідної команди дедуплікації. Найближчі вбудовані можливості — це Sort Lines (доступна з Command Palette) і редагування кількома курсорами. Щоб видалити дублікати без розширень, спершу сортуєш, а тоді вручну видаляєш сусідні повтори — що ламається, якщо порядок рядків важливий. Для рішення в один клік скористайся інструментом Видалити дублікати за адресою \u002Fremove-duplicates або встанови розширення «Remove Duplicate Lines» від Pauls0n з VS Code Marketplace.",{"question":774,"answer":775},"Чи зберігає видалення дублікатів початковий порядок рядків?","Лише деякі методи. Unix-команда `sort -u` сортує за абеткою І видаляє дублікати — початковий порядок знищується. Однорядковик `awk '!seen[$0]++'` зберігає перше входження кожного унікального рядка на його початковій позиції. PowerShell-овий `Select-Object -Unique` теж зберігає порядок. Онлайн-інструмент Видалити дублікати за адресою \u002Fremove-duplicates дає тобі обрати «лишити перше» чи «лишити останнє», обидва — зі збереженим порядком.",{"question":777,"answer":778},"Як видалити дублікати рядків у VS Code без сортування?","Сам VS Code не вміє дедуплікувати, не зачепивши порядку. Твої варіанти зі збереженням порядку: (1) `awk '!seen[$0]++'` у терміналі (macOS\u002FLinux), (2) `Get-Content file | Select-Object -Unique` у PowerShell, (3) онлайн-інструмент Видалити дублікати. Усі три лишають перше входження кожного рядка й тихо відкидають наступні дублікати.",{"question":780,"answer":781},"Що взагалі спричиняє дублікати рядків?","Найпоширеніші джерела: вставлення того самого блоку двічі, конфлікти злиття Git, що дублюють контекстні рядки, агрегатори логів без клаузи DISTINCT, CSV-експорти з баз даних без дедуплікації й скрипти, що дописують у файл замість перезаписувати його. Патерн майже завжди — це баг ідемпотентності: операція виконалася над тим самим файлом більш ніж раз.",{"question":783,"answer":784},"Як видалити дублікати рядків, що різняться лише пробілами?","Стандартна дедуплікація трактує '  hello  ' і 'hello' як різні рядки, бо порівняння точне. Щоб згорнути дублікати, що різняться лише пробілами, обріж кожен рядок перед порівнянням. Інструмент Видалити дублікати за адресою \u002Fremove-duplicates має перемикач «Trim whitespace», який нормалізує пробіли на початку\u002Fв кінці перед порівнянням — без жодної гімнастики з регулярками.",{"question":786,"answer":787},"Як дедуплікувати рядки без урахування регістру?","`sort -f -u` на Unix робить сортування + дедуплікацію без урахування регістру, трактуючи 'Hello' і 'hello' як той самий рядок. В awk нормалізуй через `awk '!seen[tolower($0)]++'`. Інструмент Видалити дублікати має перемикач без урахування регістру — увімкни його, і 'ERROR' та 'error' згорнуться в один запис.",{"question":789,"answer":790},"Який метод дедуплікації найшвидший для дуже великих файлів (100k+ рядків)?","`sort -u` найшвидший для великих файлів — це реалізація на C із зовнішнім сортуванням злиттям, що опрацьовує 1 мільйон рядків менш ніж за 2 секунди на сучасній машині. Метод awk трохи повільніший, але зберігає порядок. Браузерні інструменти комфортно тягнуть до ~100k рядків; за цією межею накладні витрати памʼяті V8 додають затримку, і термінал стає кращим інструментом.","\u002Farticles\u002Fhow-to-remove-duplicate-lines-vscode\u002Fhero.webp",{},true,"\u002Fuk\u002Fhow-to-remove-duplicate-lines-vscode","2026-05-17",{"title":5,"description":767},"uk\u002Fhow-to-remove-duplicate-lines-vscode",[799,800,801,802,803,117],"vscode","видалити дублікати","інструменти розробника","редагування тексту","термінал","Mbp-39YPsed3jcqlQ47jCcG4hIYkeg7ba5LVQdHJcpw",1782712870329]