【问题标题】:shell pipe process repeat壳管工艺重复
【发布时间】:2016-03-15 03:56:14
【问题描述】:

我想做这样的事情:

~ cat dump.sh
command 1 | command 2 | command 1 | command 2 | ...(ten times) | command 1 | command2

~ ./dump.sh < demo.log

那么如何修改dump.sh,同时我可以精确地指定command 1command 2的时间n来处理demo.log?

【问题讨论】:

  • 你能提供两个简单的命令,可以在 demo.log 文件中成对应用 n 次吗?这并不容易弄清楚,因此要帮助你。
  • 一旦你发现自己在重复这样的事情,这通常意味着有更好的方法来做你正在做的任何事情。
  • @zezollo 很难想象这会实际上有用的场景,但不难想出一对过滤器来做......一些事情。我使用sed "s/^/one /"sed "s/^/two /" 进行测试。
  • 脑筋急转弯,只是为了好玩!

标签: bash shell sed pipe


【解决方案1】:

您可以编写一个简单的递归辅助函数,如下所示:

loop () {
    case $1 in
      0) cat;;
      *) command 1 | command 2 | loop $(($1 - 1)) ;;
    esac
}

像这样调用它

loop 3 <demo.log

【讨论】:

    猜你喜欢
    • 2018-07-07
    • 1970-01-01
    • 1970-01-01
    • 2011-06-03
    • 2013-03-22
    • 2021-11-29
    • 1970-01-01
    • 2011-07-01
    • 2018-11-26
    相关资源
    最近更新 更多