当前位置: 首页 > 面试题库 >

使用“ uniq -c”命令时需要从输出中删除计数

双元魁
2023-03-14
问题内容

我正在尝试读取文件,并按特定字段出现的次数对其进行排序。假设我想从日志文件中找出最重复的日期,然后使用uniq -c选项并按降序对其进行排序。像这样的东西

uniq -c | sort -nr

这将产生这样的输出-

809 23/Dec/2008:19:20

第一个字段实际上是计数,这对我来说是个问题..我想从上述输出中获取日期,但我无法获取。我试图使用cut命令并执行此操作

uniq -c | sort -nr | cut -d' ' -f2

但这只是打印空白…请有人可以帮我确定日期并减少计数。我只想要

23/Dec/2008:19:20

谢谢


问题答案:

uniq除非计数中的位数超过7位,否则from 之前会带有空格,因此您需要执行以下操作:

uniq -c | sort -nr | cut -c 9-

使列(字符位置)向上9。或者您可以使用sed

uniq -c | sort -nr | sed 's/^.\{8\}//'

要么:

uniq -c | sort -nr | sed 's/^ *[0-9]* //'

当重复计数达到10,000,000或更多时,第二种选择是可靠的;如果您认为这可能是个问题,那么它可能比cut替代方法更好。无疑还有其他选择。

注意:计数是通过在Mac OS X 10.7.3上进行实验确定的,但使用的uniqcoreutils8.3版本的GNU 。BSD在uniq -c产生一位数之前产生了3个前导空格。POSIX规范说来自的输出uniq -c应格式化为:

printf("%d %s", repeat_count, line);

不会有任何空白。鉴于输出格式可能存在这种差异,sed带有[0-9]正则表达式的脚本是处理以下观察值和理论输出的变化的最可靠方法uniq -c

uniq -c | sort -nr | sed 's/^ *[0-9]* //'


 类似资料:
  • 我们在C语言中有一个现有的UI自动化框架,根据我们使用PageFactory初始化页面文件中的元素时的知识。最近我读了更多关于这个主题的内容,在C中使用PageFactory似乎没有什么真正的好处,所以我尝试使用字段来重新编写页面。我现在有一个问题,那就是让我的扩展方法发挥作用。 例如:在当前实现中,我有一个如下标识的元素:[FindsBy(How=How.LinkText,Using=“Auth

  • 问题内容: 我正在连接到远程服务器SSH服务器,并尝试获取特定路径中的文件列表,我能够获取该路径中的文件列表,但是它们的格式不可读,可以有人帮忙吗 这是控制台输出 问题答案: 这些是ANSI转义码,通常由终端客户端解释以漂亮地[彩色]打印输出。 如果服务器配置正确,则只有在使用交互式终端时才能获得这些信息。换句话说,如果您为会话请求了伪终端(如果要使会话自动化,则不应该这样做)。 如果使用了“ s

  • 我有一些脚本,产生与颜色输出,我需要删除ANSI代码。 输出为(在日志文件中): 我不知道如何把ESC字符放在这里,所以我把放在它的位置。 我把剧本改成: 但是现在它给我(在日志文件中): 我怎样才能删除这个'? 也许有一种方法可以完全禁用整个脚本的着色?

  • 我很难找到关于这些命令的功能、返回什么以及如何在C++中的应用程序中获得它们的信息。这是一个练习,这就是我需要如何获得我将从中读取的输入文件和我将向其写入的输出文件: 我试图使用: 谢谢!

  • 问题内容: 在成功的调用中,我获得了带有键“ objects”的JSONArray,再次是带有键“ name”的testValue。输出为: 我的代码如下: 想要按以下方式打印名称:(不带双引号) 问题答案: 1. .replaceAll() 此方法将替换您名字中出现的所有双引号,而不是第一个和最后一个。 示例:“ Abcd”变为Abcd,但如果名称为“ Ab” cd“,则根据您的要求应为Ab”

  • 问题内容: 我在SQL中使用简单的DELETE语句遇到意外结果时遇到了麻烦,似乎将单词添加到列表中了。一定是愚蠢的东西!但我看不到,尝试了几种不同的方式。所有相同的结果非常令人困惑。 问题答案: 尝试删除单引号。另外,为什么还要将SQL字符串与连接对象()连接起来???? 尝试这样: 还要注意,由于连接被包装在using块中,因此您无需在语句中将其关闭。Dispose方法将自动调用.Close方法