【问题标题】:Linux Bash Shell Command in Windows PowershellWindows Powershell 中的 Linux Bash Shell 命令
【发布时间】:2016-09-23 09:31:32
【问题描述】:

因此,Linux 中的以下命令是为发出最多请求的人订购一个 Nginx access.log 文件。

'awk '{ print $1 }' access.log | uniq -c | sort -nr | more'

这个命令在 Windows Powershell 中的等价物是什么?

【问题讨论】:

  • Stackoverflow 不是免费的代码翻译服务。请说明您尝试过什么以及您不知道如何做的具体事情。

标签: linux windows bash powershell nginx


【解决方案1】:
Get-Content access.log | ForEach-Object { $_.split()[0] -as [IPAddress] } | Sort-Object | Select-Object -Unique -ExpandProperty IPAddressToString

gc access.log |%{ $_.Split()[0] -as [IPAddress] } | sort -U |%{ "$_" }
  1. 读取文件
  2. 逐行处理
  3. 按空格分割并取第一个元素
  4. 将其转换为 IPAddress 类型,以便按数字排序
  5. 以一种或另一种方式排序和去重
  6. 取出 [IPAddress] 的字符串表示形式

注意。您的代码不符合您的要求;你需要先排序,在uniq 之前,因为它只删除连续的重复项,而不是所有的重复项。

【讨论】:

    猜你喜欢
    • 2015-09-03
    • 2013-05-16
    • 2021-08-20
    • 1970-01-01
    • 1970-01-01
    • 2019-11-17
    • 1970-01-01
    • 2013-11-21
    • 1970-01-01
    相关资源
    最近更新 更多