我想将下面的别名变成一个更简单的术语,比如 aprint。
awk '{print $1}'
Run Code Online (Sandbox Code Playgroud)
我做了
alias aprint "awk \'{print $1}\'" //But gave error ----> Missing }.
Run Code Online (Sandbox Code Playgroud)
然后我给了,
alias aprint "awk \'\{print $1\}\'"
//But gave error ----> awk: '{print , awk: ^ invalid char ''' in expression
Run Code Online (Sandbox Code Playgroud)
我不知道如何解决这个问题,请帮助...
gar*_*ohn 12
您的别名有几个问题。
首先,别名的名称与其值之间由 分隔=,而不是空格。
其次, a'不能通过用 a 转义来嵌套在其他引号中\。
如果这样写,您的别名将起作用:
alias aprint='awk "{print \$1}"'
Run Code Online (Sandbox Code Playgroud)
其中 the$前面是 a\以防止$1被 shell 扩展。
比 an 更好alias,为这种事情创建一个函数:
function aprint() { awk '{print $1}'; }
Run Code Online (Sandbox Code Playgroud)
你可以像这样使用它:
$ date
Fri Jan 3 08:09:23 CET 2014
$ date | aprint
Fri
Run Code Online (Sandbox Code Playgroud)
您可能也想对其进行参数化:
function aprint() { awk "{print \$${1:-1}}"; }
Run Code Online (Sandbox Code Playgroud)
这样,它不仅可以轻松处理第一列,还可以轻松处理任何列:
$ date | aprint 2
Jan
$ date | aprint 6
2014
Run Code Online (Sandbox Code Playgroud)
使用${1:-1}参数是可选的,默认情况下它将使用 1。
| 归档时间: |
|
| 查看次数: |
6994 次 |
| 最近记录: |