2

Я хочу добавить псевдоним ниже в более простой термин, скажем, aprint.

 awk '{print $1}'

я сделал

alias aprint "awk \'{print $1}\'"   //But gave error ----> Missing }.

тогда я дал,

alias aprint "awk \'\{print $1\}\'"  
//But gave error ----> awk: '{print , awk: ^ invalid char ''' in expression

Я не уверен, как обойти это, пожалуйста, помогите ...

2 ответа2

4

Есть несколько проблем с вашим псевдонимом.

Во-первых, имя псевдонима отделяется от его значения символом = , а не пробелом.

Во-вторых, a ' не может быть вложено в другие кавычки, экранируя их с помощью \ .

Ваш псевдоним будет работать, если написано так:

alias aprint='awk "{print \$1}"'

где $ предшествует \ чтобы предотвратить расширение $1 оболочкой.

3

Лучше, чем alias , создайте функцию для такого рода вещей:

function aprint() { awk '{print $1}'; }

Вы можете использовать его, например, так:

$ date
Fri Jan  3 08:09:23 CET 2014
$ date | aprint
Fri

Вы, вероятно, хотите параметризовать это тоже:

function aprint() { awk "{print \$${1:-1}}"; }

Таким образом, он будет легко работать не только с 1-м, но и с любым столбцом:

$ date | aprint 2
Jan
$ date | aprint 6
2014

Использование ${1:-1} аргумент является необязательным, и по умолчанию он будет использовать 1.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .