Невозможно использовать 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

Как просили:

Вот одна из причин, почему функции лучше псевдонимов: вы можете избежать кавычек.

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
} 

Связанный контент