首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在管道中转义grep和awk?

如何在管道中转义grep和awk?
EN

Stack Overflow用户
提问于 2014-04-18 16:39:33
回答 2查看 1.3K关注 0票数 2

我想为一个长命令创建一个别名。但我无法逃脱,我想这是管道的问题。

我的原始命令

代码语言:javascript
复制
ps aux | grep gimp | awk '{ print $2 '\011' $11 }' | grep -v 'grep'

我对别名的尝试

代码语言:javascript
复制
alias psa="ps aux | grep $1 | awk '{ print \$2 \"\011\" \$11 }' | grep -v 'grep'"

但是我得到了一个错误,grep无法打开文件foo (当我做psa foo)

当我删除最后一部分| grep -v 'grep'时,awk会抛出相同的错误。

在shell脚本之前,我更喜欢别名。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-18 16:43:59

如果要插入参数,则需要使用函数:

代码语言:javascript
复制
psa() {
    ps aux | grep "$1" | awk '{print $2 "\t" $11 }' | grep -v grep
}
票数 8
EN

Stack Overflow用户

发布于 2014-04-18 16:43:09

通过为此使用一个函数,可以避免所有转义:

代码语言:javascript
复制
myps() {
   ps aux | grep gimp | awk '{ print $2 "\011" $11 }' | grep -v 'grep'
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23158307

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档