Любой из них будет выбирать строки с 1
в первом столбце
awk '$1 == 1'
grep -w '^1'
Они оба могут быть расширены, так что вам даже не понадобится wc
для подсчета строк
awk '$1==1 { x++ } END { print x }'
grep -cw '^1'
Вы не можете использовать такие псевдонимы. Псевдонимы работают, только если они используются первыми в длинной последовательности команд, оболочка в основном заменяет текст псевдонима фактической командой. Когда вы вводите команду, оболочка сначала ищет псевдоним, затем функцию и так далее. Подстановка команд/подстановка псевдонимов не работает, если вы используете псевдоним в середине последовательности команд.
Кроме того, флаг -exec
для find
всегда будет порождать отдельный процесс, выполняющий двоичный файл, а не псевдоним или функцию, это жестко запрограммировано.
Некоторые оболочки позволяют расширять псевдонимы в любом месте командной строки -, например, zsh
имеет концепцию глобального псевдонима ,alias -g 'grep=grep --color=auto -H'
Однако, если ваша интерактивная оболочка — bash, псевдонимы расширяются только тогда, когда они появляются в качестве первого слова команды, поэтому вам нужно будет обернуть вызов grep
в оболочку и вызвать оболочку таким образом, чтобы ваш файл ~/.bashrc
для чтения, как если бы в сеансе интерактивной оболочки.
Например
find. -name '*.txt' -exec bash -ic 'for f do grep foo "$f"; done' find-bash {} +
Насколько я знаю, это никоим образом не опасно -, однако это требует некоторых накладных расходов и вряд ли более удобно, чем простое предоставление нужных опций grep напрямую.