無法在別名指令鏈中使用 awk

無法在別名指令鏈中使用 awk

我想將此命令鏈添加到別名中以獲得簡寫:

tail -10000 /var/log/nginx/access.log | awk '{print $1}' | sort | uniq -c | sort -nr | head -10

但是,作為別名,它不能正常工作:

alias ttn="tail -10000 /var/log/nginx/access.log | awk '{print $1}' | sort | uniq -c | sort -nr | head -10"

我嘗試使用單引號而不是雙引號,或者在 awk 的引號之前使用轉義字符\,但沒有成功。感謝您的協助。

答案1

按照要求:

這就是函數比別名更好的原因之一:你可以避免引用 hell。

ttn() { tail -10000 /var/log/nginx/access.log | awk '{print $1}' | sort | uniq -c | sort -nr | head -10; } 

或者,更易讀

ttn() { 
    tail -10000 /var/log/nginx/access.log | 
      awk '{print $1}' | 
      sort | 
      uniq -c | 
      sort -nr | 
      head -10
} 

或者,另一種多線樣式:

ttn() { 
    tail -10000 /var/log/nginx/access.log \
    | awk '{print $1}' \
    | sort \
    | uniq -c \
    | sort -nr \
    | head -10
} 

相關內容