Подтвердить что ты не робот

Использование awk в псевдониме или функции BASH

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

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

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

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

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

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

4b9b3361

Ответ 1

Вам нужно избежать $ так:

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

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

 awk '{print }' /tmp/textfile

Что печатает весь файл...

Ответ 2

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

myfunc(){ awk '{print $1}' file; }