Использование awk в псевдониме или функции BASH - PullRequest
26 голосов
/ 30 августа 2011

У меня есть команда, которая прекрасно работает в командной строке, но не тогда, когда я пытаюсь поместить ее в псевдоним или функцию.

$ awk '{print $1}' /tmp/textfile
0

Это верно, поскольку '0' находится в позиции1 из "textfile".

$ alias a="awk '{print $1}' /tmp/textfile"
$ a
1 0 136 94

Это вся строка в "textfile".Я пробовал все варианты цитат, скобок и обратных ссылок, которые я мог себе представить, может сработать.Я могу получить ту же проблему в самых разных форматах.

Что я не понимаю?

Ответы [ 2 ]

49 голосов
/ 30 августа 2011

Вам нужно сбежать от $ вот так:

 alias a="awk '{print \$1}' /tmp/textfile"

В противном случае ваш псевдоним:

 awk '{print }' /tmp/textfile

Который печатает весь файл ...

12 голосов
/ 30 августа 2011

Используйте функцию вместо псевдонима

myfunc(){ awk '{print $1}' file; }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...