【问题标题】:Sort lines by length with automator?用自动机按长度对行进行排序?
【发布时间】:2010-08-10 22:42:31
【问题描述】:

我有一个 text document(1MB,TXT 文件),它的行数略多于 17,500 行。我希望能够做的是按字符长度对这些行进行排序,并将其输出到同一个文件(然后保存)或完全输出到一个新文件。只要我提前知道,任何一个都可以正常工作。

如果我可以通过 OS X 中的 Automator 以某种方式完成此操作,则可以加分,因为我的编码/终端能力……缺乏。

【问题讨论】:

  • 这是作业还是你真的不知道怎么做?
  • 不知道该怎么做。这是我正在做一些初步工作的一个小项目。我是一名网页设计师(请注意链接的基本 URL)。
  • 为了速度,我绝对不推荐 Automator 或 Applescript 用于此类工作。在终端中找到某种解决方案会更好。
  • 我想你已经在这里问过这个问题discussions.info.apple.com/thread.jspa?messageID=12077242
  • 是的,因为我没有到达任何地方,我想,嘿,为什么不试试开发者社区。谢谢您的帮助。说真的。

标签: macos terminal applescript unix automator


【解决方案1】:

我将文件转换为 XML,然后使用 XSLT 根据字符串长度对条目进行排序。这是一个很长的路要走,但它奏效了。

【讨论】:

    【解决方案2】:

    awk '{printf "%7d %s\n", length($0), $0}' 文件 |排序-n | sed -e 's/^....... //' > 新文件

    在 8 个字符的字段中打印每一行及其前面的长度 对输出进行数字排序 去掉每行前面的 8 个字符

    如果文件的每一行字符数少于 10M,则此方法有效。由于您的文件小于 1MB,这一定是真的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-08-18
      • 2011-06-26
      • 2016-09-04
      • 1970-01-01
      • 1970-01-01
      • 2011-11-26
      • 2013-05-27
      相关资源
      最近更新 更多