Awk kann nicht in Alias-Befehlskette verwendet werden

Awk kann nicht in Alias-Befehlskette verwendet werden

Ich möchte diese Befehlskette zum Alias ​​hinzufügen, um eine Abkürzung zu haben:

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

Als Alias ​​funktioniert es jedoch nicht wie es sollte:

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

Ich habe versucht, einfache Anführungszeichen statt doppelter Anführungszeichen zu verwenden oder \vor den Anführungszeichen von awk ein Escape-Zeichen zu setzen, aber nichts hat funktioniert. Ich bin also für Ihre Hilfe dankbar.

Antwort1

Wie gewünscht:

Dies ist ein Grund, warum Funktionen besser sind als Aliase: Sie können das Zitieren von „hell“ vermeiden.

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

oder, besser lesbar

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

oder ein anderer mehrzeiliger Stil:

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

verwandte Informationen