natgillin/translations-raw huggingface dataset:
This section only introduces some very basic features of sed. For more information see info: / sed or http: / /www. gnu. org/ software/ sed/ manual/ html_mono/ sed. html. A precompiled version for Windows can be found at http: / /unxutils. sourceforge. net. Note that the following examples assume that the sed -command is in some directory in the PATH-environment variable. If this is not the case, you have to specify the full absolute path for the command.
Цей розділ є лише вступом, у якому обговорено найпростіші можливості команди sed. Докладніші відомості можна знайти на сторінці info: / sed або http: // www. gnu. org/ software/ sed/ manual/ html_ mono/ sed. html. Зібрану версію цієї програми для Windows можна знайти за адресою http: // unxutils. sourceforge. net. Зауважте, що у наведених нижче прикладах припускається, що файл програми sed зберігається у одному з каталогів, які вказано у змінній середовища PATH. Якщо це не так, вам доведеться вказувати повний абсолютний шлях до файла програми.
Also note that the following examples use the single quotation mark (') which wo n't work for Windows. On Windows you should use the double quotation marks (") instead.
Крім того, зауважте, що у наступних прикладах використано одинарну лапку ('), яка не дасть бажаного результату у Windows. У Windows вам слід використовувати подвійні лапки (").
In this context only the sed -substitute-command is used: sed's/ REGEXP / REPLACEMENT / FLAGS 'Before you use a new command within & kdiff3;, you should first test it in a console. Here the echo -command is useful. Example: echo abrakadabra _BAR_ sed's/ a/ o/' - > obrakadabra This example shows a very simple sed-command that replaces the first occurance of "a" with "o". If you want to replace all occurances then you need the "g"-flag: echo abrakadabra _BAR_ sed's/ a/ o/ g '- > obrokodobro The" _BAR_"-symbol is the pipe-command that transfers the output of the previous command to the input of the following command. If you want to test with a longer file then you can use cat on Unix-like systems or type on Windows-like systems. sed will do the substitution for each line.
У цьому контексті використовується лише команда заміни sed: sed 's / ФОРМАЛЬНИЙ_ ВИРАЗ / ЗАМІНА / ПРАПОРЦІ' Перш ніж користуватися новою командою у & kdiff3;, вам слід спочатку випробувати її у консолі. Для такої перевірки вам знадобиться команда echo. Приклад: echo abrakadabra _BAR_ sed 's/ a/ o /' - > obrakadabra У цьому прикладі ми продемонстрували дуже просту команду sed, яка заміняє перше знайдене « a » на « o ». Якщо ви бажаєте замінити всі « a », вам слід скористатися прапорцем « g »: echo abrakadabra _BAR_ sed 's/ a/ o/ g' - > obrokodobro Символ « _BAR_ » використовується для створення конвеєрів: дані, виведені попередньою командою, передаються як вхідні дані наступній команді. Якщо ви бажаєте виконати перевірку на великому файлі, вам слід скористатися командою cat у Unix- подібних системах або командою type у Windows- подібних системах. sed виконає заміну у всіх рядках.
cat filename _BAR_ sed options
cat назва файла _BAR_ sed параметри
Examples For sed -Use In & kdiff3;
Приклади використання sed у & kdiff3;
Ignoring Other Types Of Comments
Ігнорування коментарів інших типів
Currently & kdiff3; understands only C/ C++ comments. Using the Line-Matching-Preprocessor-Command you can also ignore other types of comments, by converting them into C/ C++-comments. Example: To ignore comments starting with "#", you would like to convert them to "/ /". Note that you also must enable the "Ignore C/ C++-Comments" option to get an effect. An appropriate Line-Matching-Preprocessor-Command would be: sed's/ #/ \\/ \\/ / 'Since for sed the "/" -character has a special meaning, it is necessary to place the "\\"-character before each" / "in the replacement-string. Sometimes the"\\ "is required to add or remove a special meaning of certain characters. The single quotation marks (') before and after the substitution-command are important now, because otherwise the shell will try to interpret some special characters like '# ', '$' or '\\ 'before passing them to sed. Note that on Windows you will need the double quotation marks (") here. Windows substitutes other characters like'% ', so you might have to experiment a little bit.
Поточна версія & kdiff3; розуміє лише коментарі у стилі C/ C++. За допомогою команди препроцесора пошуку відповідників ви можете наказати програмі ігнорувати інші типи коментарів перетворенням цих коментарів на коментарі C/ C++. Приклад: щоб наказати програмі ігнорувати коментарі, що починаються з « # », вам слід перетворити цей символ на « // ». Зауважте, що вам також слід позначити пункт « Ігнорувати коментарі C/ C++ », щоб отримати бажаний результат. Відповідна команда препроцесора пошуку відповідників буде такою: sed 's / # /\\ /\\ //' Оскільки у sed символ « / » має особливе призначення, у рядку- заміннику перед кожним символом « / » слід додавати символ «\\ ». Цей символ потрібен для додавання або вилучення особливого призначення інших символів. Крім того, символи одинарних лапок (') перед і після команди заміни є важливими, оскільки якщо ви їх не використовуватимете, оболонка виконання команд намагатиметься інтерпретувати символи « # », « $» і «\\ », перш ніж передати їх команді sed. Зауважте, що у Windows вам слід використовувати подвійні лапки цитування ("). У Windows оболонка намагається замінити інші символи, зокрема «% », отже, вам слід трохи поекспериментувати з формальними виразами.
Caseinsensitive Diff
Пошук відмінностей без врахування регістру
Use the following Line-Matching-Preprocessor-Command to convert all input to uppercase: sed's/ \\(. *\\)/ \\U\\1/ 'Here the ". *" is a regular expression that matches any string and in this context matches all characters in the line. The "\\1" in the replacement string refers to the matched text within the first pair of "\\(" and "\\)". The "\\U" converts the inserted text to uppercase.
Для перетворення всіх символів у вхідних даних на символи верхнього регістру можна скористатися такою командою препроцесора пошуку відповідників: sed 's /\\ (. *\\) /\\ U\\ 1 /' У цій команді ми використали «. * » — формальний вираз, що відповідає будь- якому рядку, а у нашому контексті відповідними вважатимуться всі символи рядка. Послідовність символів «\\ 1 » у рядку- заміннику відповідає знайденому тексту у першій парі круглих дужок, «\\ (» і «\\) ». Команда «\\ U » перетворює символи вставленого тексту на символи у верхньому регістрі.
Ignoring Version Control Keywords
Ігнорування ключових слів системи керування версіями
CVS and other version control systems use several keywords to insert automatically generated strings (info: / cvs/ Keyword substitution). All of them follow the pattern "$KEYWORD generated text$". We now need a Line-Matching-Preprocessor-Command that removes only the generated text: sed's/ \\$\\(Revision\\_BAR_Author\\_BAR_Log\\_BAR_Header\\_BAR_Date\\). *\\$/ \\$\\1\\$/ 'The "\\_BAR_" separates the possible keywords. You might want to modify this list according to your needs. The "\\" before the "$" is necessary because otherwise the "$" matches the end of the line.
У CVS та інших системах керування версіями використовується декілька ключових слів, призначених для вставки автоматично створених рядків (див. info: / cvs/ Keyword substitution). Всі ці ключові слова буде вказано за схемою: « $КЛЮЧОВЕ_ СЛОВО створений текст$ ». Нам буде потрібна команда препроцесора пошуку відповідників, який вилучить лише створений текст: sed 's /\\ $\\ (Revision\\ _BAR_Author\\ _BAR_Log\\ _BAR_Header\\ _BAR_Date\\). *\\ $/\\ $\\ 1\\ $/' Символ «\\ _BAR_ » відокремлює можливі варіанти ключових слів. Можливо, вам слід змінити цей список відповідно до ваших потреб. Перед символом « $» обов’ язково слід додати символ екранування «\\ », оскільки у іншому випадку команда вважатиме, що « $» позначає кінець рядка.
While experimenting with sed you might come to understand and even like these regular expressions. They are useful because there are many other programs that also support similar things.
Під час експериментів з sed ви краще зрозумієте механізм дії і навіть полюбите формальні вирази. Це буде корисним, оскільки значна кількість інших програм підтримують подібні формальні вирази.
Ignoring Numbers
Ігнорування цифр
Ignoring numbers actually is a built-in option. But as another example, this is how it would look as a Line-Matching-Preprocessor-command. sed's/ [0123456789. -]/ /g 'Any character within '[' and ']' is a match and will be replaced with nothing.
Насправді ігнорування чисел є вбудованою функцією. Але, як ще один приклад, ми покажемо, як зробити так, щоб під час пошуку відповідників програма ігнорувала числа, за допомогою команди препроцесора порівняння рядків: sed 's / [0123456789. -] // g' Препроцесор знайде всі символи, вказані між квадратними дужками, і вилучить їх (замінить на порожнє місце).
Ignoring Certain Columns
Ігнорування певних стовпчиків
Sometimes a text is very strictly formatted, and contains columns that you always want to ignore, while there are other columns you want to preserve for analysis. In the following example the first five columns (characters) are ignored, the next ten columns are preserved, then again five columns are ignored and the rest of the line is preserved. sed's/..... \\(..........\\)..... \\(. *\\)/ \\1\\2/ 'Each dot'. 'matches any single character. The "\\1" and "\\2" in the replacement string refer to the matched text within the first and second pair of "\\(" and "\\)" denoting the text to be preserved.
Іноді ви маєте справу зі строго форматованим текстом, який містить позиції, які завжди слід ігнорувати, інші ж позиції тексту потрібно проаналізувати. У наступному прикладі буде проігноровано перших п’ ять позицій (символів), наступні десять позицій буде збережено, наступні п’ ять знову проігноровано, решту рядка буде збережено: sed 's /.....\\ (..........\\).....\\ (. *\\) /\\ 1\\ 2 /' Кожна крапка «. » відповідає одному символу. «\\ 1 » і «\\ 2 » у рядку заміни відповідають знайденому тексту між першою і другою парою круглих дужок, які позначають текст, який не слід вилучати.
Combining Several Substitutions
Комбінування декількох підстановок
Sometimes you want to apply several substitutions at once. You can then use the semicolon ';' to separate these from each other. Example:
Іноді виникає потреба у одночасному виконанні декількох підстановок. У такому випадку ви можете скористатися крапкою з комою («; »), щоб відокремити одну підстановку від інших. Приклад:
Using perl instead of sed
Використання perl замість sed
Instead of sed you might want to use something else like perl. perl -p -e's/ REGEXP / REPLACEMENT / FLAGS 'But some details are different in perl. Note that where sed needed "\\(" and "\\)" perl requires the simpler "(" and ")" without preceding '\\'. Example:
Замість sed ви можете скористатися іншим інструментом, зокрема perl. perl - p - e 's / ФОРМАЛЬНИЙ_ ВИРАЗ / ЗАМІННИК / ПАРАМЕТРИ' Але у perl ви матимете справу з дещо відмінними конструкціями формальних виразів. Зауважте, що там, де у sed слід використовувати "\\ (" і "\\)", у perl слід використовувати простіший варіант "(" і ")" без попередніх '\\'. Приклад:
Order Of Preprocessor Execution
Порядок виконання попередньої обробки
The data is piped through all internal and external preprocessors in the following order:
Дані буде пропущено через всі внутрішні та зовнішні препроцесори у такому порядку:
Normal preprocessor,
Звичайний препроцесор,
Line-Matching-Preprocessor,
Препроцесор пошуку рядків,
Ignore case (conversion to uppercase),
Ігнорування регістру (перетворення на літери верхнього регістру),
Detection of C/ C++ comments,
Визначення коментарів C/ C++,
Ignore numbers,
Ігнорування чисел,
Ignore white space
Ігнорування пробілів
The data after the normal preprocessor will be preserved for display and merging. The other operations only modify the data that the line-matching-diff-algorithm sees.
Після обробки звичайним препроцесором дані не буде змінено: їх буде показано і об’ єднано у початковому вигляді. За допомогою інших дій у програмі можна буде змінити лише дані, які було повернуто алгоритмом пошуку відповідних рядків.
In the rare cases where you use a normal preprocessor note that the line-matching-preprocessor sees the output of the normal preprocessor as input.
У рідкісних випадках використання звичайного препроцесора зауважте, що препроцесор пошуку відповідних рядків оброблятиме лише рядки, передані йому звичайним препроцесором.
Warning
Попередження
The preprocessor-commands are often very useful, but as with any option that modifies your texts or hides away certain differences automatically, you might accidentally overlook certain differences and in the worst case destroy important data.
Часто команди попередньої обробки виявляються дуже корисними, але, як це трапляється з будь- якою дією, внаслідок якої відбувається автоматична заміна фрагментів вашого тексту або приховування певних відмінностей, може статися випадковий пропуск певних даних або, у найгіршому випадку, знищення важливих даних.
For this reason during a merge if a normal preprocessor-command is being used & kdiff3; will tell you so and ask you if it should be disabled or not. But it wo n't warn you if a Line-Matching-Preprocessor-command is active. The merge will not complete until all conflicts are solved. If you disabled "Show White Space" then the differences that were removed with the Line-Matching-Preprocessor-command will also be invisible. If the Save-button remains disabled during a merge (because of remaining conflicts), make sure to enable "Show White Space". If you do n't want to merge these less important differences manually you can select "Choose [A_BAR_B_BAR_C] For All Unsolved White space Conflicts" in the Merge-menu.
З цієї причини під час об’ єднання, якщо було використано звичайну команду- препроцесор, & kdiff3; повідомить вас про це і запитає про те, бажаєте ви вимкнути наслідки дії цієї команди чи ні. Але програма не попереджатиме вас про використання команди- препроцесора, призначеної для пошуку відповідних рядків. Об’ єднання не буде завершено, доки ви не розв’ яжете всі конфлікти. Якщо ви знімете позначку з пункту « Показувати пробіли », відмінності, які було вилучено командою- препроцесором пошуку відповідних рядків, також стануть невидимими. Якщо після цього ви не зможете зробити кнопку « Зберегти » активною під час об’ єднання (оскільки залишатимуться не розв’ язані конфлікти), знову позначте пункт « Показувати пробіли ». Якщо ви не бажаєте виконувати розв’ язання цих малозначущих конфліктів вручну, ви можете скористатися пунктами « Обрати A/ B/ C для всіх нерозв’ язаних конфліктів пробілів » з меню « Об’ єднання ».
Directory Comparison and Merge with & kdiff3;
Порівняння і об’ єднання каталогів за допомогою & kdiff3;
Introduction into Directory Comparison and Merge
Вступ до порівняння і об’ єднання каталогів
Often programmers must modify many files in a directory to achieve their purpose. For this & kdiff3; also lets you compare and merge complete directories recursively!
Часто програмістам для досягнення потрібної мети доводиться змінювати багато файлів у певному каталозі. У такому випадку & kdiff3; надасть вам змогу порівняти і об’ єднати цілі каталоги рекурсивно!
Even though comparing and merging directories seems to be quite obvious, there are several details that you should know about. Most important is of course the fact that now many files might be affected by each operation. If you do n't have backups of your original data, then it can be very hard or even impossible to return to the original state. So before starting a merge, make sure that your data is safe, and going back is possible. If you make an archive or use some version control system is your decision, but even experienced programmers and integrators need the old sources now and then. And note that even though I (the author of & kdiff3;) try to do my best, I ca n't guarantee that there are no bugs. According to the GNU-GPL there is NO WARRANTY whatsoever for this program. So be humble and always keep in mind:
Хоча порівняння і об’ єднання каталогів здається зовсім очевидною дією, існує декілька моментів, на які вам слід звернути увагу. Найважливішим є, звичайно ж, той факт, що кожна з дій на цей раз включатиме цілий набір файлів. Якщо у вас немає резервних копій початкових даних, каталог буде дуже важко або навіть неможливо повернути у початковий стан. Отже, перш ніж виконувати об’ єднання, переконайтеся, що ваші дані у безпеці і повернення до попереднього стану можливе. Можна скористатися архівуванням або використати одну з систем керування версіями, але навіть досвідченим програмістам та інтеграторам іноді можуть знадобитися старі коди програм. Зауважте, що хоча автор & kdiff3; намагався (і намагатиметься) зробити програму якомога кращою, гарантувати відсутність вад у програмі просто неможливо. Відповідно до GNU- GPL автор НІЧОГО НЕ ГАРАНТУЄ щодо цієї програми. Отже, змиріться і завжди пам’ ятайте, що:
To err is human, but to really mess things up you need a computer.
Людині властиво помилятися, але, щоб насправді все заплутати, їй потрібен комп’ ютер.
So this is what this program can do for you: & kdiff3;...
Отже, ось що ця програма може зробити для вас: & kdiff3;...
... reads and compares two or three directories recursively,
... рекурсивно прочитати і порівняти два або три каталоги,
... takes special care of symbolic links,
... виконати особливу обробку символічних посилань,
... lets you browse files on mouse double click,
... надати вам змогу переглянути файли подвійним клацанням кнопкою миші,
... for each item proposes a merge operation, which you can change before starting the directory merge,
... для кожного з пунктів запропонувати дію з об’ єднання, яку ви можете змінити перед тим, як розпочати об’ єднання каталогів,
... lets you simulate the merge and lists the actions that would take place, without actually doing them,
... надати вам змогу зімітувати об’ єднання і показати список дій, які буде виконано без їх виконання насправді,
... lets you really do the merge, and lets you interact whenever manual interaction is needed,
... надати вам змогу насправді виконати об’ єднання і втрутитися, якщо знадобиться ваше втручання вручну,
... lets you run the selected operation for all items (key F7) or the selected item (key F6),
... надати вам змогу виконати вибрану дію для всіх елементів (клавіша F7) або вибраного елемента (клавіша F6),
... lets you continue the merge after manual interaction with key F7,
... надати вам змогу продовжити автоматичне об’ єднання за допомогою клавіші F7, після вашого втручання вручну,
... optionally creates backups, with the ". orig" extension,
... за бажання, створити резервні копії з суфіксом «. orig »,
Starting Directory Comparison Or Merge
Запуск порівняння або об’ єднання каталогів
This is very similar to the single file merge and comparison. You just have to specify directories on the command line or in the file-open dialog.
Виконання цього завдання дуже подібне на виконання завдання з порівняння і об’ єднання окремих файлів. Вам просто слід вказати каталоги у командному рядку або у діалоговому вікні відкриття файлів.
Compare/ Merge two directories:
Порівняння/ Об’ єднання двох каталогів:
kdiff3 dir1 dir2 kdiff3 dir1 dir2 -o destdir
kdiff3 каталог1 каталог2 kdiff3 каталог1 каталог2 - o каталог_ призначення
If no destination directory is specified, then & kdiff3; will use dir2.
Якщо не буде вказано каталогу призначення, & kdiff3; використовуватиме каталог2.
Compare/ Merge three directories:
Порівняння/ Об’ єднання трьох каталогів:
kdiff3 dir1 dir2 dir3 kdiff3 dir1 dir2 dir3 -o destdir
kdiff3 каталог1 каталог2 каталог3 kdiff3 каталог1 каталог2 каталог3 - o каталог_ призначення
When three directories are merged then dir1 is used as the base for the merge. If no destination directory is specified, then & kdiff3; will use dir3 as the destination directory for the merge.
Якщо об’ єднуються три каталоги, базовим для об’ єднання буде каталог1. Якщо каталогу призначення не вказано, & kdiff3; використає з цією метою каталог3.
Note that only the comparison starts automatically, not the merge. For this you first must select a menu entry or the key F7. (More details later.)
Зауважте, що автоматично починається лише порівняння, але не об’ єднання. Щоб виконати об’ єднання, вам слід скористатися відповідним пунктом меню або натиснути клавішу F7 (докладніше про це згодом).
Directory Merge Visible Information
Візуальні дані щодо об’ єднання каталогів
While reading the directories a message-box appears that informs you of the progress. If you abort the directory scan, then only files that have been compared until then will be listed.
Під час читання каталогів програма показуватиме піктограму з поштовою скринькою, яка позначає виконання завдання. Якщо ви перервете сканування каталогів, буде показано список лише тих файлів, які програма встигла просканувати.
When the directory scan is complete then & kdiff3; will show a listbox with the results left,...
Після завершення сканування каталогів & kdiff3; покаже панель з результатами ліворуч...
... and details about the currently selected item on the right:
... і подробиці щодо поточного вибраного елемента праворуч:
The Name Column
Стовпчик назви
Each file and directory that was found during the scan is shown here in a tree. You can select an item by clicking it with the mouse once.
Тут буде показано ієрархічний список всіх файлів і каталогів, які було знайдено під час сканування. Вибрати пункт списку можна наведенням на нього вказівника миші з наступним клацанням лівою кнопкою миші.
The directories are collapsed by default. You can expand and collapse them by clicking on the "+"/" - "or by double-clicking the item or by using the left/ right-arrow-keys. The" Directory"-menu also contains two actions "Fold all subdirs" and "Unfold all subdirs" with which you can collapse or expand all directories at once.
Типово, каталоги буде згорнуто. Розгортати або згортати каталоги можна натисканням кнопки « + » / « - », подвійним на позначці каталогу або за допомогою натискання клавіш зі стрілочками ліворуч і праворуч на клавіатурі. Крім того, у меню « Каталог » міститься два пункти, « Згорнути всі підтеки » і « Розгорнути всі підтеки », за допомогою яких ви можете згортати або розгортати всі каталоги одразу.
If you double-click a file item then the file comparison starts and the file-diff-window will appear.
Після наведення вказівника миші на позначку файла з наступним подвійним клацанням лівою кнопкою миші буде відкрито перегляд відмінностей для відповідного файла.
The image in the name column reflects the file type in the first directory ("A"). It can be one of these:
Зображення у стовпчику назви відповідатиме типу файла у першому каталозі (« A »). Можливі такі варіанти:
Normal file
Звичайний файл
Normal directory (directory-image)
Звичайний каталог (зображення каталогу)
Link to a file (file-image with a link arrow)
Посилання на файл (зображення файла з стрілочкою посилання)
Link to a directory (directory-image with a link arrow)
Посилання на каталог (зображення теки зі стрілочкою посилання)
If the file type is different in the other directories, then this is visible in the columns A/ B/ C and in the window that shows the details about the selected item. Note that for such a case no merge operation can be selected automatically. When starting the merge, then the user will be informed of problems of that kind.
Якщо типи файлів у каталогах відрізнятимуться, ви зможете помітити це за стовпчиками A/ B/ C, а також за вікном докладними відомостями щодо вибраного пункту. Зауважте, що у таких випадках вибір автоматичного об’ єднання неможливий. Якщо користувач викличе дію з об’ єднання, його буде попереджено про проблеми з типом файлів.
The Columns A/ B/ C and the Coloring Scheme
Стовпчики A/ B/ C і схема кольорів
As can be seen in the image above the colors red, green, yellow and black are used in the columns A/ B/ C.
Як можна бачити на наведеному вище зображенні для стовпчиків A/ B/ C використовуються червоний, зелений, жовтий і чорний кольори.
Black: This item does n't exist in this directory.
Чорний: елемента не існує у цьому каталозі.
Green: Newest item.
Зелений: найновіший елемент.
Yellow: Older than green, newer than red.
Жовтий: старіший за зелений, новіший за червоний.
Red: Oldest item.
Червоний: найстаріший елемент.