Комментарии 21
команды sed и awk сами по себе полны по Тьюрингу
Вниманию переводчика! Sed это не команда, а текстовый редактор. Awk это не команда, а язык программирования.
Переводчик-то тут при чём? Это вопрос автору оригинала:
It is well known that the
sed
andawk
commands are Turing complete on their own
Переводчик должен обращать внимание научного редактора на такие места в тексте, а затем научный редактор должен исправлять такие ошибки. Перевод не является калькой или дословной копией оригинала, это отдельная творческая работа.
Если уж душнить, то по полной:
sed
это потоковый редакторязык
awk
этоscripting language
а неprogramming language
в контексте статьи (работа с шелл) обсуждаются программы (
utilities
)find
в связке сmkdir
, а так же приводятся в пример утилиты (а не языки!)awk
иsed
вызов программы с параметрами — это команда, для оболочки командной строки
термин команда в данном случае использован как аббревиация и означает использование соотвествующей утилиты
А разве предложение ошибочно, если представить, что sed и awk в родительном падеже, а не в именительном?
Да, с вами я соглашаюсь. Этой детали я не заметил!
Однако AWK это язык, который реализован в нескольких разных программах, в разных версиях под разные операционные системы. У меня вот для программ на языке AWK есть GAWK и MAWK (то есть команду AWK запустить не получится).
Sed это не команда, а текстовый редактор. Awk это не команда, а язык программирования.
Ну, а остальные тоже не "команды", а отдельные программы.
В данном случае, рыночная классификация программы не особо важна и они все выступают в качестве "команд" в "командной строке"
В контексте перевода про функции командной строки это корректное предложение.
Да, sed и awk, а так же, к примеру, zip - это программы.
Но так как их можно вызвать из консоли с аргументами, это еще и команды.
Таким образом, автор явно утверждает, что "вызов sed из командной строки с параметрами - Тьюринг полный и теоретически может решить любой алгоритм"
Противоречия тут нет.
Вот у меня установлен Mike Brennan MAWK, это программа MAWK.
Я могу написать и выполнить программу на языке AWK? Да, могу. Программа MAWK позволяет выполнять программы на языке AWK.
Я могу выполнить команду AWK? Нет, не могу, потому что программа-исполнитель называется MAWK.
Я могу выполнить команду AWK? Нет, не могу, потому что программа-исполнитель называется MAWK.
В современных unix-подобных системах это таки /usr/bin/awk.
Таким образом, awk это, конечно, в первую очередь язык, но в то же время это и:
распространенная программа-интерпретатор этого языка;
команда, которую вы пишете в оболочке для вызова этого интерпретатора.
Да? А в debian сделано так:
~# apt search mawk
Sorting... Done
Full Text Search... Done
…
mawk/stable,now 1.3.4.20200120-3.1 amd64 [installed]
Pattern scanning and text processing language
~# ls -l `which awk`
lrwxrwxrwx 1 root root 21 Jun 17 2022 /usr/bin/awk -> /etc/alternatives/awk
~# ls -l /etc/alternatives/awk
lrwxrwxrwx 1 root root 13 Jun 17 2022 /etc/alternatives/awk -> /usr/bin/mawk
А в MacOS просто awk неизвестного происхождения, даже копирайты не указаны. Наверное, откуда-то из *BSD пришел.
Вы впервые слышите, что одно слово обозначает несколько сущностей? В русском языке такого довольно много (хорошо ещё, когда сущности связанные, а не как для слова "коса", к примеру). А в английском вообще чуть ли не любое существительное может использоваться, как глагол. Слово одно, значения разные, хоть и связаны.
Да, но если бы у вас стояла не MAWK, а AWK, то вы и команду такую могли бы выполнить.
Где противоречие то?
Слушайте, да какая разница что и как называется? Те, кому надо - понимает и так. Конечно, аккуратность в терминологии не лишняя, но статья не об этом. И, кстати, статья - интересная. Плюсую
find + mkdir полны по Тьюрингу