簡體   English   中英

如何在別名中逃避管道中的grep和awk?

[英]How to escape grep and awk within pipe in an alias?

我想為一個長命令創建一個別名。 但是我無法正確地逃避它,我想這是管道的問題。

我原來的命令

ps aux | grep gimp | awk '{ print $2 '\011' $11 }' | grep -v 'grep'

我嘗試別名

alias psa="ps aux | grep $1 | awk '{ print \$2 \"\011\" \$11 }' | grep -v 'grep'"

但是我得到一個錯誤, grep無法打開文件foo (當我做psa foo
當我刪除最后一部分| grep -v 'grep' | grep -v 'grep'然后awk拋出同樣的錯誤。

我更喜歡shell腳本之前的別名。

如果要插入參數,則需要使用函數:

psa() {
    ps aux | grep "$1" | awk '{print $2 "\t" $11 }' | grep -v grep
}

您可以使用以下函數來避免所有轉義:

myps() {
   ps aux | grep gimp | awk '{ print $2 "\011" $11 }' | grep -v 'grep'
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM