エイリアスコマンドチェーンでは 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

要求通り:

これが関数がエイリアスよりも優れている理由の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
} 

おすすめ記事