diff options
| -rw-r--r-- | d.html.markdown | 20 | ||||
| -rw-r--r-- | elisp.html.markdown | 3 | ||||
| -rw-r--r-- | es-es/python3-es.html.markdown | 6 | ||||
| -rw-r--r-- | es-es/ruby-es.html.markdown | 6 | ||||
| -rw-r--r-- | haskell.html.markdown | 2 | ||||
| -rw-r--r-- | lua.html.markdown | 2 | ||||
| -rw-r--r-- | matlab.html.markdown | 4 | ||||
| -rw-r--r-- | ru-ru/erlang-ru.html.markdown | 2 | ||||
| -rw-r--r-- | ru-ru/perl-ru.html.markdown | 195 | ||||
| -rw-r--r-- | ua-ua/bash-ua.html.markdown | 296 | ||||
| -rw-r--r-- | ua-ua/json-ua.html.markdown | 67 | 
11 files changed, 219 insertions, 384 deletions
| diff --git a/d.html.markdown b/d.html.markdown index 9ebba385..6f88cf84 100644 --- a/d.html.markdown +++ b/d.html.markdown @@ -70,7 +70,7 @@ void main() {  ```  We can define new types with `struct`, `class`, `union`, and `enum`. Structs and unions -are passed to functions by value (i.e. copied) and classes are passed by reference. Futhermore, +are passed to functions by value (i.e. copied) and classes are passed by reference. Furthermore,  we can use templates to parameterize all of these on both types and values!  ```c @@ -218,7 +218,7 @@ void main() {      // from 1 to 100. Easy!      // Just pass lambda expressions as template parameters! -    // You can pass any old function you like, but lambdas are convenient here. +    // You can pass any function you like, but lambdas are convenient here.      auto num = iota(1, 101).filter!(x => x % 2 == 0)                             .map!(y => y ^^ 2)                             .reduce!((a, b) => a + b); @@ -228,7 +228,7 @@ void main() {  ```  Notice how we got to build a nice Haskellian pipeline to compute num? -That's thanks to a D innovation know as Uniform Function Call Syntax. +That's thanks to a D innovation know as Uniform Function Call Syntax (UFCS).  With UFCS, we can choose whether to write a function call as a method  or free function call! Walter wrote a nice article on this  [here.](http://www.drdobbs.com/cpp/uniform-function-call-syntax/232700394) @@ -238,21 +238,23 @@ is of some type A on any expression of type A as a method.  I like parallelism. Anyone else like parallelism? Sure you do. Let's do some!  ```c +// Let's say we want to populate a large array with the square root of all +// consecutive integers starting from 1 (up until the size of the array), and we +// want to do this concurrently taking advantage of as many cores as we have +// available. +  import std.stdio;  import std.parallelism : parallel;  import std.math : sqrt;  void main() { -    // We want take the square root every number in our array, -    // and take advantage of as many cores as we have available. +    // Create your large array      auto arr = new double[1_000_000]; -    // Use an index, and an array element by reference, -    // and just call parallel on the array! +    // Use an index, access every array element by reference (because we're +    // going to change each element) and just call parallel on the array!      foreach(i, ref elem; parallel(arr)) {          ref = sqrt(i + 1.0);      }  } - -  ``` diff --git a/elisp.html.markdown b/elisp.html.markdown index 3bed5d1c..da86cab3 100644 --- a/elisp.html.markdown +++ b/elisp.html.markdown @@ -2,6 +2,7 @@  language: elisp  contributors:      - ["Bastien Guerry", "http://bzg.fr"] +    - ["Saurabh Sandav", "http://github.com/SaurabhSandav"]  filename: learn-emacs-lisp.el  --- @@ -26,7 +27,7 @@ filename: learn-emacs-lisp.el  ;;  ;; Going through this tutorial won't damage your computer unless  ;; you get so angry that you throw it on the floor.  In that case, -;; I hereby decline any responsability.  Have fun! +;; I hereby decline any responsibility.  Have fun!  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;  ;; diff --git a/es-es/python3-es.html.markdown b/es-es/python3-es.html.markdown index d30af1c8..05fd7065 100644 --- a/es-es/python3-es.html.markdown +++ b/es-es/python3-es.html.markdown @@ -97,7 +97,7 @@ not False  # => True  None  # => None  # No uses el símbolo de igualdad `==` para comparar objetos con None -# Usa `is` en lugar de +# Usa `is` en su lugar  "etc" is None #=> False  None is None  #=> True @@ -383,7 +383,7 @@ def keyword_args(**kwargs):  keyword_args(pie="grande", lago="ness") #=> {"pie": "grande", "lago": "ness"} -# You can do both at once, if you like# Puedes hacer ambas a la vez si quieres +# Puedes hacer ambas a la vez si quieres  def todos_los_argumentos(*args, **kwargs):      print args      print kwargs @@ -511,7 +511,7 @@ def duplicar_numeros(iterable):      for i in iterable:          yield i + i -# Un generador cera valores sobre la marcha. +# Un generador crea valores sobre la marcha.  # En vez de generar y retornar todos los valores de una vez, crea uno en cada iteración.  # Esto significa que valores más grandes que 15 no serán procesados en 'duplicar_numeros'.  # Fíjate que 'range' es un generador. Crear una lista 1-900000000 tomaría mucho tiempo en crearse. diff --git a/es-es/ruby-es.html.markdown b/es-es/ruby-es.html.markdown index d8b67fe7..e3e43c18 100644 --- a/es-es/ruby-es.html.markdown +++ b/es-es/ruby-es.html.markdown @@ -29,7 +29,7 @@ Nadie los usa.  Tu tampoco deberías  =end -# Lo primero y principal: Todo es un objeto +# En primer lugar: Todo es un objeto  # Los números son objetos @@ -128,7 +128,7 @@ ruta = '/mal/nombre/'  # Los símbolos (son objetos)  # Los símbolos son inmutables, constantes reusables representadas internamente por un -# valor entero. Son usalmente usados en vez de strings para expresar eficientemente +# valor entero. Son normalmente usados en vez de strings para expresar eficientemente  # valores específicos y significativos  :pendiente.class #=> Symbol @@ -156,7 +156,7 @@ arreglo[0] #=> 1  arreglo.first #=> 1  arreglo[12] #=> nil -# Tal como la aritmética, el acceso como variable[índice] +# Al igual que en aritmética, el acceso como variable[índice]  # es sólo azúcar sintáctica  # para llamar el método [] de un objeto  arreglo.[] 0 #=> 1 diff --git a/haskell.html.markdown b/haskell.html.markdown index 936744a0..34eee748 100644 --- a/haskell.html.markdown +++ b/haskell.html.markdown @@ -426,7 +426,7 @@ qsort (p:xs) = qsort lesser ++ [p] ++ qsort greater            greater = filter (>= p) xs  ``` -Haskell is easy to install. Get it [here](http://www.haskell.org/platform/). +There are two popular ways to install Haskell: The traditional [Cabal-based installation](http://www.haskell.org/platform/), and the newer [Stack-based process](https://www.stackage.org/install).  You can find a much gentler introduction from the excellent  [Learn you a Haskell](http://learnyouahaskell.com/) or diff --git a/lua.html.markdown b/lua.html.markdown index 3d95c146..2cd4d7bb 100644 --- a/lua.html.markdown +++ b/lua.html.markdown @@ -190,7 +190,7 @@ end  --------------------------------------------------------------------------------  -- A table can have a metatable that gives the table operator-overloadish --- behavior. Later we'll see how metatables support js-prototypey behaviour. +-- behaviour. Later we'll see how metatables support js-prototypey behaviour.  f1 = {a = 1, b = 2}  -- Represents the fraction a/b.  f2 = {a = 2, b = 3} diff --git a/matlab.html.markdown b/matlab.html.markdown index 25f762bb..ddc0cb40 100644 --- a/matlab.html.markdown +++ b/matlab.html.markdown @@ -73,7 +73,7 @@ c = exp(a)*sin(pi/2) % c = 7.3891  % Calling functions can be done in either of two ways:  % Standard function syntax: -load('myFile.mat', 'y') % arguments within parantheses, spererated by commas +load('myFile.mat', 'y') % arguments within parentheses, separated by commas  % Command syntax:  load myFile.mat y 	% no parentheses, and spaces instead of commas  % Note the lack of quote marks in command form: inputs are always passed as @@ -279,7 +279,7 @@ clf clear % clear current figure window, and reset most figure properties  % Properties can be set and changed through a figure handle.  % You can save a handle to a figure when you create it. -% The function gcf returns a handle to the current figure +% The function get returns a handle to the current figure  h = plot(x, y); % you can save a handle to a figure when you create it  set(h, 'Color', 'r')  % 'y' yellow; 'm' magenta, 'c' cyan, 'r' red, 'g' green, 'b' blue, 'w' white, 'k' black diff --git a/ru-ru/erlang-ru.html.markdown b/ru-ru/erlang-ru.html.markdown index 99ea79ee..69f81800 100644 --- a/ru-ru/erlang-ru.html.markdown +++ b/ru-ru/erlang-ru.html.markdown @@ -18,7 +18,7 @@ lang: ru-ru  % Пунктуационные знаки, используемые в Erlang:  % Запятая (`,`) разделяет аргументы в вызовах функций, структурах данных и  % образцах. -% Точка (`.`) (с пробелом после них) разделяет функции и выражения в +% Точка (`.`) (с пробелом после неё) разделяет функции и выражения в  % оболочке.  % Точка с запятой (`;`) разделяет выражения в следующих контекстах:  % формулы функций, выражения `case`, `if`, `try..catch` и `receive`. diff --git a/ru-ru/perl-ru.html.markdown b/ru-ru/perl-ru.html.markdown new file mode 100644 index 00000000..a907ba41 --- /dev/null +++ b/ru-ru/perl-ru.html.markdown @@ -0,0 +1,195 @@ +--- +category: language +language: perl +filename: learnperl-ru.pl +contributors: +    - ["Korjavin Ivan", "http://github.com/korjavin"] +translators: +    - ["Elena Bolshakova", "http://github.com/liruoko"] +lang: ru-ru +--- + +Perl 5 -- высокоуровневый мощный язык с 25-летней историей.  +Особенно хорош для обработки разнообразных текстовых данных.  + +Perl 5 работает более чем на 100 платформах, от портативных устройств +до мейнфреймов, и подходит как для быстрого прототипирования,  +так и для крупных проектов.  + +```perl +# Комментарии начинаются с символа решетки. + + +#### Типы переменных в Perl + +#  Скалярные переменные начинаются с знака доллара $. +#  Имя переменной состоит из букв, цифр и знаков подчеркивания,  +#  начиная с буквы или подчеркивания.  + +### В Perl три основных типа переменных: скаляры, массивы, хеши. + +## Скаляры +#  Скаляр хранит отдельное значение: +my $animal = "camel"; +my $answer = 42; + +# Скаляры могут быть строками, целыми и вещественными числами. +# Когда требуется, Perl автоматически выполняет преобразования к нужному типу. + +## Массивы +#  Массив хранит список значений: +my @animals = ("camel", "llama", "owl"); +my @numbers = (23, 42, 69); +my @mixed   = ("camel", 42, 1.23); + + +## Хеши +#   Хеш хранит набор пар ключ/значение: + +my %fruit_color = ("apple", "red", "banana", "yellow"); + +#  Можно использовать оператор "=>" для большей наглядности: + +my %fruit_color = ( +        apple  => "red", +        banana => "yellow", +        ); + +# Важно: вставка и поиск в хеше выполняются за константное время,  +# независимо от его размера. + +# Скаляры, массивы и хеши подробно описаны в разделе perldata +# (perldoc perldata). + +# Более сложные структуры данных можно получить, если использовать ссылки. +# С помощью ссылок можно получить массив массивов хешей, в которых хранятся другие хеши. + +#### Условные операторы и циклы + +# В Perl есть большинсво привычных условных и циклических конструкций. + +if ( $var ) { +    ... +} elsif ( $var eq 'bar' ) { +    ... +} else { +    ... +} + +unless ( condition ) { +                   ... +               } +# Это более читаемый вариант для "if (!condition)" + +# Специфические Perl-овые пост-условия:  +print "Yow!" if $zippy; +print "We have no bananas" unless $bananas; + +#  while +  while ( condition ) { +                   ... +               } + + +# for, foreach +for ($i = 0; $i <= $max; $i++) { +                   ... +               } + +foreach (@array) { +                   print "This element is $_\n"; +               } + +for my $el (@array) { +                   print "This element is $el\n"; +               } + +#### Регулярные выражения + +# Регулярные выражения занимают важное место в Perl-е, +# и подробно описаны в разделах документации perlrequick, perlretut и других. +# Вкратце: + +# Сопоставление с образцом +if (/foo/)       { ... }  # выполняется, если $_ содержит "foo" +if ($a =~ /foo/) { ... }  # выполняется, если $a содержит "foo" + +# Простые замены + +$a =~ s/foo/bar/;         # заменяет foo на bar в строке $a +$a =~ s/foo/bar/g;        # заменяет ВСЕ ВХОЖДЕНИЯ foo на bar в строке $a + + +#### Файлы и ввод-вывод + +# Открыть файл на чтение или запись можно с помощью функции "open()". + +open(my $in,  "<",  "input.txt")  or die "Can't open input.txt: $!"; +open(my $out, ">",  "output.txt") or die "Can't open output.txt: $!"; +open(my $log, ">>", "my.log")     or die "Can't open my.log: $!"; + +# Читать из файлового дескриптора можно с помощью оператора "<>".   +# В скалярном контексте он читает одну строку из файла, в списковом --  +# читает сразу весь файл, сохраняя по одной строке в элементе массива: + +my $line  = <$in>; +my @lines = <$in>; + +#### Подпрограммы (функции) + +# Объявить функцию просто: + +sub logger { +    my $logmessage = shift; +    open my $logfile, ">>", "my.log" or die "Could not open my.log: $!"; +    print $logfile $logmessage; +} + +# Теперь можно использовать эту функцию так же, как и встроенные: + +logger("We have a logger subroutine!"); +``` + +#### Perl-модули + +Perl-овые модули предоставляют широкий набор функциональности,  +так что вы можете не изобретать заново велосипеды, а просто скачать  +нужный модуль с CPAN (http://www.cpan.org/).  +Некоторое количество самых полезных модулей включено в стандартную  +поставку Perl. + +Раздел документации perlfaq содержит вопросы и ответы о многих частых  +задачах, и часто предлагает подходящие CPAN-модули. + + +#### Unicode + +Вам наверняка понадобится работать с не-ASCII текстами. +Добавьте эти прагмы в начало скрипта: + +```perl +use utf8; +use open ':std' => ':utf8'; +``` + +Подробнее читайте в perldoc, разделы perlunicode и open. + + +#### strict, warnings + +Прагмы strict и warnings включают полезные проверки во время компиляции: + +```perl +use strict; +use warnings; +``` + +Подробнее смотрите perldoc strict и perldoc warnings. + + +#### Смотрите также + + - [perl-tutorial](http://perl-tutorial.org/) + - [обучающий раздел на www.perl.com](http://www.perl.org/learn.html) + - [perldoc в вебе](http://perldoc.perl.org/) + - встроенная справка : `perldoc perlintro` diff --git a/ua-ua/bash-ua.html.markdown b/ua-ua/bash-ua.html.markdown deleted file mode 100644 index 2c930ad1..00000000 --- a/ua-ua/bash-ua.html.markdown +++ /dev/null @@ -1,296 +0,0 @@ ---- -category: tool -tool: bash -contributors: -    - ["Max Yankov", "https://github.com/golergka"] -    - ["Darren Lin", "https://github.com/CogBear"] -    - ["Alexandre Medeiros", "http://alemedeiros.sdf.org"] -    - ["Denis Arh", "https://github.com/darh"] -    - ["akirahirose", "https://twitter.com/akirahirose"] -    - ["Anton Strömkvist", "http://lutic.org/"] -    - ["Rahil Momin", "https://github.com/iamrahil"] -    - ["Gregrory Kielian", "https://github.com/gskielian"] -    - ["Etan Reisner", "https://github.com/deryni"] -translators: -    - ["Ehreshi Ivan", "https://github.com/IvanEh"] -lang: ua-ua ---- - -Bash - командна оболонка unix (unix shell), що також розповсюджувалась як оболонка для -операційної системи GNU і зараз використовується як командна оболонка за замовчуванням -для Linux i Max OS X. -Почти все нижеприведенные примеры могут быть частью shell-скриптов или исполнены напрямую в shell. -Майже всі приклади, що наведені нижче можуть бути частиною shell-скриптів або -виконані в оболонці - -[Більш детально тут.](http://www.gnu.org/software/bash/manual/bashref.html) - -```bash -#!/bin/bash -# Перший рядок скрипта - це shebang, який вказує системі, як потрібно виконувати -# скрипт. Як ви вже зрозуміли, коментарі починаються з #. Shebang - тоже коментар - -# Простий приклад hello world: -echo Hello world! - -# Окремі команди починаються з нового рядка або розділяються крапкою з комкою: -echo 'Перший рядок'; echo 'Другий рядок' - -# Оголошення змінної -VARIABLE="Просто рядок" - -# Але не так! -VARIABLE = "Просто рядок" -# Bash вирішить, що VARIABLE - це команда, яку він може виконати, -# і видасть помилку, тому що не зможе знайти її - -# І так також не можна писати: -VARIABLE= 'Просто рядок' -# Bash сприйме рядок 'Просто рядок' як команду. Але такої команди не має, тому -# видасть помилку.  -# (тут 'VARIABLE=' інтерпретується як присвоєння тільки в контексті -# виконання команди 'Просто рядок') - -# Використання змінних: -echo $VARIABLE -echo "$VARIABLE" -echo '$VARIABLE' -# Коли ви використовуєте змінну - присвоюєте значення, експортуєте і т.д. - -# пишіть її імя без $. А для отримання значення змінної використовуйте $. -# Одинарні лапки ' не розкривають значення змінних - -# Підстановка рядків в змінні -echo ${VARIABLE/Просто/A} -# Цей вираз замінить перше входження підрядка "Просто" на "А" - -# Отримання підрядка із рядка -LENGTH=7 -echo ${VARIABLE:0:LENGTH} -# Цей вираз поверне тільки перші 7 символів змінної VARIABLE - -# Значення за замовчуванням -echo ${FOO:-"DefaultValueIfFOOIsMissingOrEmpty"} -# Це спрацює при відсутності значення (FOO=) і при пустому рядку (FOO="") -# Нуль (FOO=0) поверне 0. -# Зауважте, що у всіх випадках значення самої змінної FOO не зміниться - -# Вбудовані змінні: -# В bash є корисні вбудовані змінні, наприклад -echo "Значення, яке було повернуте в останній раз: $?" -echo "PID скрипта: $$" -echo "Кількість аргументів: $#" -echo "Аргументи скрипта: $@" -echo "Аргументи скрипта, розподілені по різним змінним: $1 $2..." - -# Зчитування змінних з пристроїв  введення -echo "Як вас звати?" -read NAME # Зверніть увагу, що вам не потрібно оголошувати нову змінну -echo Привіт, $NAME! - -# В bash є звичайна умовна конструкція if: -# наберіть 'man test', щоб переглянути детальну інформацію про формати умов -if [ $NAME -ne $USER ] -then -    echo "Ім’я користувача не збігається з введеним" -else -    echo "Ім’я збігаєтьяс з іменем користувача" -fi - -# Зауважте! якщо $Name пуста, bash інтерпретує код вище як: -if [ -ne $USER ] -# що є неправильним синтаксисом -# тому безпечний спосіб використання потенційно пустих змінних має вигляд: -if [ "$Name" -ne $USER ] ... -# коли $Name пуста, інтерпретується наступним чином: -if [ "" -ne $USER ] ... -# що працює як і очікувалося - -# Умовне виконання (conditional execution) -echo "Виконується завжди" || echo "Виконається, якщо перша команда завершиться з помилкою" -echo "Виконується завжди" && echo "Виконається, якщо перша команда завершиться успішно" - -# Щоб використати && і || у конструкції if, потрібно декілька пар дужок: -if [ $NAME == "Steve" ] && [ $AGE -eq 15 ] -then -    echo "Виконається, якщо $NAME="Steve" i AGE=15." -fi - -if [ $NAME == "Daniya" ] || [ $NAME == "Zach" ] -then -    echo "Виконається, якщо NAME="Steve" або NAME="Zach"." -fi - -# Вирази позначаються наступним форматом: -echo $(( 10 + 5 )) - -# На відмінно від інших мов програмування, Bash - це командна оболонка, а -# отже, працює в контексті поточної директорії -ls - -# Ця команда може використовуватися з опціями -ls -l # Показати кожен файл і директорію на окремому рядку - -# Результат попередньої команди можна перенаправити на вхід наступної. -# Команда grep фільтрує вхід по шаблону. -# Таким чином ми можемо переглянути тільки *.txt файли в поточній директорії: -ls -l | grep "\.txt" - -# Ви можете перенаправ вхід і вихід команди (stdin, stdout, stderr). -# Наступна команда означає: читати із stdin, поки не зустрінеться ^EOF$, і -# перезаписати hello.py наступними рядками (до рядка "EOF"): -cat > hello.py << EOF -#!/usr/bin/env python -from __future__ import print_function -import sys -print("#stdout", file=sys.stdout) -print("#stderr", file=sys.stderr) -for line in sys.stdin: -    print(line, file=sys.stdout) -EOF - -# Запуск hello.py з різними варіантами перенаправлення stdin,  -# stdout, stderr (стандартні потоки введення, виведення і помилок): -python hello.py < "input.in" -python hello.py > "output.out" -python hello.py 2> "error.err" -python hello.py > "output-and-error.log" 2>&1 -python hello.py > /dev/null 2>&1 -# Поток помилок перезапише фпйл, якщо цей файл існує -# тому, якщо ви хочете дописувати до файлу, використовуйте ">>": -python hello.py >> "output.out" 2>> "error.err" - -# Перезаписати output.txt, дописати error.err і порахувати кількість рядків: -info bash 'Basic Shell Features' 'Redirections' > output.out 2>> error.err -wc -l output.out error.err - -# Запустити команду і вивести її файловий дескриптор (див.: man fd; наприклад /dev/fd/123) -echo <(echo "#helloworld") - -# Перезаписати output.txt рядком "#helloworld": -cat > output.out <(echo "#helloworld") -echo "#helloworld" > output.out -echo "#helloworld" | cat > output.out -echo "#helloworld" | tee output.out >/dev/null - -# Подчистить временные файлы с подробным выводом ('-i' - интерактивый режим) -# Очистити тимчасові файли з детальним виводом (додайте '-i' -# для інтерактивного режиму) -rm -v output.out error.err output-and-error.log - -# Команди можуть бути підставлені в інші команди використовуючи $(): -# наступна команда виводить кількість файлів і директорій в поточній директорії -echo "Тут $(ls | wc -l) елементів." - -# Те саме можна зробити використовуючи зворотні лапки -# Але вони не можуть бути вкладеними, тому перший варіант бажаніший -echo "Тут `ls | wc -l` елементів." - -# В Bash є структура case, яка схожа на switch в Java и C++: -case "$VARIABLE" in  -    # перерахуйте шаблони, які будуть використовуватися в якості умов -    0) echo "Тут нуль.";; -    1) echo "Тут один.";; -    *) echo "Не пусте значення.";; -esac - -# Цикл for перебирає елементи передані в аргумент: -# Значення $VARIABLE буде напечатано тричі. -for VARIABLE in {1..3} -do -    echo "$VARIABLE" -done - -# Aбо можна використати звичний синтаксис for: -for ((a=1; a <= 3; a++)) -do -    echo $a -done - -# Цикл for можно використати, щоб виконувати дії над файлами. -# Цей код запустить команду 'cat' для файлів file1 и file2 -for VARIABLE in file1 file2 -do -    cat "$VARIABLE" -done - -# ... або дії над виводом команд -# Запустимо cat для виведення із ls. -for OUTPUT in $(ls) -do -    cat "$OUTPUT" -done - -# Цикл while: -while [ true ] -do -    echo "Тіло циклу..." -    break -done - -# Ви також можете оголосити функцію -# Оголошення: -function foo () -{ -    echo "Аргументи функції доступні так само, як і аргументи скрипта: $@" -    echo "$1 $2..." -    echo "Це функція" -    return 0 -} - -# Або просто -bar () -{ -    echo "Інший спосіб оголошення функцій!" -    return 0 -} - -# Виклик функцій -foo "Мое имя" $NAME - -# Є багато корисних команд: -# вивести останні 10 рядків файла file.txt -tail -n 10 file.txt -# вивести перші 10 рядків файла file.txt -head -n 10 file.txt -# відсортувати рядки file.txt -sort file.txt -# відібрати або пропустити рядки, що дублюються (з опцією -d відбирає) -uniq -d file.txt -# вивести тільки першу колонку перед символом ',' -cut -d ',' -f 1 file.txt -# замінити кожне 'okay' на 'great' у файлі file.txt (підтримується regex) -sed -i 's/okay/great/g' file.txt -# вивести в stdout все рядки з file.txt, що задовольняють шаблону regex; -# цей приклад виводить рядки, що починаються на foo і закінчуються на bar: -grep "^foo.*bar$" file.txt -# використайте опцію -c, щоб вивести кількість входжень -grep -c "^foo.*bar$" file.txt -# чтобы искать по строке, а не шаблону regex, используйте fgrep (или grep -F) -# щоб здійснити пошук по рядку, а не по шаблону regex, використовуйте fgrea (або grep -F) -fgrep "^foo.*bar$" file.txt  - -# Читайте вбудовану документацію Bash командою 'help': -help -help help -help for -help return -help source -help . - -# Читайте Bash man-документацію -apropos bash -man 1 bash -man bash - -# Читайте документацію info (? для допомоги) -apropos info | grep '^info.*(' -man info -info info -info 5 info - -# Читайте bash info документацію: -info bash -info bash 'Bash Features' -info bash 6 -info --apropos bash -``` diff --git a/ua-ua/json-ua.html.markdown b/ua-ua/json-ua.html.markdown deleted file mode 100644 index 6281ea56..00000000 --- a/ua-ua/json-ua.html.markdown +++ /dev/null @@ -1,67 +0,0 @@ ---- -language: json -filename: learnjson-ru.json -contributors: -  - ["Anna Harren", "https://github.com/iirelu"] -  - ["Marco Scannadinari", "https://github.com/marcoms"] -translators: -  - ["Ehreshi Ivan", "https://github.com/IvanEh"] -lang: ua-ua ---- - -JSON - це надзвичайно простий формат обміну даними. Це мабуть буде найлегшим курсом  -"Learn X in Y Minutes". - -В загальному випадку в JSON немає коментарів, але більшість парсерів дозволяють  -використовувати коментарі в С-стилі(//, /\* \*/). Можна залишити кому після останнього -поля, але все-таки краще такого уникати для кращої сумісності - -```json -{ -  "ключ": "значеннь", -   -  "ключі": "завжди мають бути обгорнуті в подвійні лапки", -  "числа": 0, -  "рядки": "Пρивет, світ. Допускаються всі unicode-символи разом з \"екрануванням\".", -  "логічний тип": true, -  "нічого": null, - -  "велике число": 1.2e+100, - -  "об’єкти": { -    "коментар": "Більшість ваших структур будуть складатися з об’єктів", - -    "масив": [0, 1, 2, 3, "масиви можуть містити будь-які типи", 5], - -    "інший об’єкт": { -      "коментра": "Об’єкти можуть містити інші об’єкти. Це дуже корисно." -    } -  }, - -  "безглуздя": [ -    { -      "джерело калія": ["банани"] -    }, -    [ -      [1, 0, 0, 0], -      [0, 1, 0, 0], -      [0, 0, 1, "нео"], -      [0, 0, 0, 1] -    ] -  ], -   -  "альтернативнтй стиль": { -    "коментар": "Гляньте!" -  , "позиція коми": "неважлива, поки вона знаходиться до наступного поля" -  , "інший коментар": "класно" -  }, - -  "Це було не довго": "І ви справилист. Тепер ви знаєте все про JSON." -} - -Одиничний масив значень теж є правильним JSON - -[1, 2, 3, "text", true] - - -``` | 
