【问题标题】:Select any combination of words from file [closed]从文件中选择任何单词组合[关闭]
【发布时间】:2021-03-05 07:03:03
【问题描述】:

我有一个这样的文件:

one two three four five six seven eight nine ten

并且想使用 sed/grep/awk/cut 来从该文件中获取所有三个单词组合,因此示例的结果将是:

one two three
two three four
three four five
four five six
five six seven
six seven eight
seven eight nine
eight nine ten

这可以用 grep 完成吗?我需要循环吗?

【问题讨论】:

  • 欢迎来到 SO,请在您的问题中以代码的形式添加您的努力,这在 SO 上受到强烈鼓励。
  • 我觉得grep做不到,我会用awk。是的,你可能需要一个循环。
  • 这些工具都不适用于正则表达式中的环视和组。你可以用 Perl 做到这一点。
  • 这是一个单行 awk。花点时间阅读simple awk tutorial

标签: bash awk sed grep cut


【解决方案1】:

如果您真的想要get all three words combinations,请参阅https://stackoverflow.com/a/56916316/1745001(您不知道,但也许将来有人会遇到这个问题)。你想要的只是:

$ awk '{for (i=3; i<=NF; i++) print $(i-2), $(i-1), $i}' file
one two three
two three four
three four five
four five six
five six seven
six seven eight
seven eight nine
eight nine ten

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多