Make, grep, sed и bash
Make
Очень большой мануал по make - тынцЕщё один поменьше - тынц
Важно помнить, синтаксис в описании целей и пререквизитов отличается от синтаксиса команд!
Ключи вызова make:
-r - отключает встроенные проверки для различных с языков. так быстрее работает;
-k - продолжать работать, в случает если одна из целей поломалась;
-n - не выполнять реальных команд, а выводить их в виде текста. для отладки;
-d - debug-режим;
-j20 - выполнять в 20-и (обычно 10-30) потоках.
make -r -f Makefile_create all -k -j30 &>make.log
В Makefile:
SOME_VAR:=$(shell find txt_instructions/some_dir -type f -name '*.instr') - вызов команд BASH, в данном случае find
_CNT__ROUTES:=$(patsubst txt_instructions/_CNT_/%.instr,generated_routes/_CNT_/%.mp,$(SOME_VAR)) - а теперь замена (patsubst) путей из переменной (SOME_VAR), во всех найденных путях txt_instructions меняется на generated_routes.
Правила:
generated_routes/_CNT_/%.mp: txt_instructions/_CNT_/%.instr
mkdir -p $(@D)
/home/filippov/programm_test -dumpBaseName generated_routes/_CNT_/$* -route `cat $<`
Здесь:
$(@D) - директория в которой должна появиться цель (generated_routes/_CNT_/%)
$* - то что в цели скрывается под %
$< - первая зависимость цели
$^ - все зависимости
$(word 2, $^) - вторая зависимость цели
$(word 3, $^) - третья зависимость цели и т.д.
grep
Про grep с примерами - тынцsed
Маленький учебник по sed и awk - тутОднострочники на sed - тут
bash
Основные команды - тутРабота со строками в bash - здесь
Команды работы с текстом - тут
Введение в регулярные выражения - тут
Удаление дублей строк из файла без сортировки.
Утилита uniq удаляет дубли повторяющихся подряд строк, т.е. перед вызовом нужно вызвать sort. А можно и вот так:
awk '!x[$0]++' old_file > new_file
Комментарии
Отправить комментарий