как насчет того, чтобы подать файл шаблона въезжают задним ходом как файл данных так, чтобы каждый шаблон нашел по крайней мере одно соответствие, и затем вычитание того от финала сообщило о счете для каждого соответствия
grep -f patterns.in logfile.txt patterns.in | cut -f2 -d':' | sort | uniq -c | awk '{print($1 - 1" "$2)}'
Принятие Вас использует bash_aliases
(это не необходимо, у Вас могут также быть псевдонимы, определенные в .bashrc
среди других мест), можно просто добавить строку к файлу:
printf "alias foo='bar'" >> ~/.bash_aliases
С другой стороны, если Вы только хотите этот псевдоним для текущей сессии, используйте команду псевдонима непосредственно:
alias foo='bar'
Bash не позволяет псевдонимам быть расширенными (для работы) в сценариях по умолчанию, необходимо будет активироваться expand_aliases
опция:
#!/usr/bin/env bash
alias foo='echo "It works!"'
echo " Alias defined, attempting to use without expand_aliases"
foo
shopt -s expand_aliases
echo " Attempting to use with expand_aliases"
foo
Если я запускаю скрипт выше, псевдоним foo
будет только работать после того, как я активируюсь expand_aliases
опция:
$ a.sh
Alias defined, attempting to use without expand_aliases
/home/terdon/scripts/a.sh: line 5: foo: command not found
Attempting to use with expand_aliases
It works!
Просто выполните псевдоним, как Вы были бы в bash_alias.
alias lt='ls -altrch'
Проверьте при помощи команды типа.
type alias
lt is aliased to 'ls -altrch'
expand_aliases
, см. мой ответ.
– terdon♦
01.02.2014, 20:34
Можно также использовать HEREDOCS для добавления нескольких строк также:
(
cat <<EOF
alias ali1='cmds1...'
alias ali2='cmds2...'
EOF
) >> ~/bash_aliases
Вышеупомянутое может быть копией, вставляемой в оболочку.
$ more ~/bash_aliases
alias ali1='cmds1...'
alias ali2='cmds2...'
С другой стороны, Вы могли просто сделать новый сценарий, чтобы сделать запуск. Создайте файл,/usr/local/bin/start_node_blog со следующим содержанием:
#!/bin/bash
that_long_fiddly_command_you_mentioned
Затем сделайте
chmod +x /usr/local/bin/start_node_blog
и можно выполнить его после перезагрузки.
shopt -s expand_aliases
, действительно ли это является постоянным? Пока я не полностью переустанавливаю ОС, это останется? Я спрашиваю, потому что я нахожусь на Raspberry Pi; некоторый сброс вещей, когда я перезагружаю. – evamvid 01.02.2014, 20:39startghost
чтобы это запустилось. – evamvid 01.02.2014, 20:46bash_aliases
однажды, добавьте соответствующий псевдоним, и Вы сделаны, это будет доступно навсегда. Вы не должны делать этого на каждой начальной загрузке. Для чего был бы сценарий? – terdon♦ 01.02.2014, 20:51