Если Вы не должны передавать аргументы команде затем #!/usr/bin/env gawk
путь состоит в том, чтобы пойти, однако много ядер (включая Linux) только принимают отдельный аргумент к программам хижины.
Иначе можно сделать многоязычную программу, которая является и оберткой оболочки и awk сценарием. Вот один для awk.
#!/bin/sh
true + /; exec gawk -f "$0"; exit; / {}
# awk script starts here
Парсинг Shell:
true + /;
— команда true
(который ничего не делает) с двумя инертными аргументами +
и /
.gawk
. Это могло быть любым отрывком оболочки, который не содержит новые строки и где наклонные черты записаны \/
(оболочка не возражает кроме внутренних кавычек).exec
заменять оболочку простофилей вместо того, чтобы выполнить простофилю как подпроцесс.exit;
— выйдите из оболочки, в случае, если простофиля не была найдена. Что-либо после этого проигнорировано, за исключением того, что это должен быть допустимый синтаксис оболочки в случае, если оболочка пытается проанализировать целую строку прежде, чем начать выполнять его.Парсинг Awk:
true + /REGEX/
— условие. true
неопределенная переменная, таким образом, ее числовое значение 0, не, что она имеет значение.{}
— Если упомянутое условие содержит, ничего не сделайте.Это несколько вопросов, поэтому давайте начнем с начала:
Не знаю, почему инструкции для Python 2.6 от 2012 года кажутся простейшими, но в целом следует:
sudo apt-get install python-lzma
(это бэкпорт стандартного модуля lzma, появившегося в Python3.3) или установить из PyPI с помощью pip (который должен быть установлен только один раз):
sudo apt-
pip установка pylzma
Оба эти метода позволяют удалить установку, что-то, начиная со смолы, не гарантирует. Использование pip обычно предоставляет более актуальный пакет, но не может обрабатывать зависимости системной библиотеки (поэтому может потребоваться установить пакет liblzma5
, если он еще не установлен.
Обычно bytecompile не выполняется явно, самое позднее при первом использовании, или во время установки. Но python работает нормально с файлами .py
, даже если он не может записать файл .pyc
при первом использовании (он просто начинается медленнее).
Интересно, почему импорт питона
по подсказке питона не дает ошибки. В моей системе это так, так как нет файла python.py
. Чтобы проверить наличие pylzma, следуйте инструкциям на устаревшей странице по адресу:
> > import pylzma
> > > импорт py7zlib
С помощью pip
я получил версию 0,4,6 привязок Игоря Павлова
Нет, это неправильно. Я понятия не имею, что такое \1 {3}
, но именно это вызывает у вас проблемы. Если нужно найти строки, содержащие три повторяющихся символа, а затем три других повторяющихся символа, можно использовать следующую команду:
grep -E '([a-z])\1{2}([a-z])\2{2}'
\1
относится к первой захваченной группе. Можно захватывать группы, используя круглые скобки. Затем \1
является первой такой группой, а \2
- второй и т.д. Поскольку у вас не было захваченных групп, grep
жаловался на недопустимую ссылку, так как ее не на что ссылаться. Так, в приведенном выше регексе скобки фиксируют две группы. Затем требуется {2}
, а не {3}
, так как также подсчитывается начальное совпадение.
Вы не указываете, должно ли совпадение быть словом, или вы также хотите совпадать в словах. Если вы хотите, чтобы все слово соответствовало (и исключить вещи, как aaaabbb
, используйте это вместо:
grep -wE '([a-z])\1{2}([a-z])\2{2}'
Чтобы напечатать только совпадающую часть строки (слово), а не всю строку, используйте (только GNU grep):
grep -owE '([a-z])\1{2}([a-z])\2{2}'
-121--48943- Неважно; Это просто человек ./file_name
.