无法在别名命令链中使用 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
} 

相关内容