【问题标题】:Close tmux session with a particular name关闭具有特定名称的 tmux 会话
【发布时间】:2021-06-22 06:57:56
【问题描述】:

我想要一个命令来关闭所有名称对应于模式的 tmux 会话。正则表达式语言中的模式是nn\d+

我觉得我应该可以使用 grep 和 xargs 的组合。

我试过了 tmux ls | grep -P "nn\d+" | .. 但我不确定如何在这里使用xargs,即:我不确定如何仅引用匹配字符串的名称部分,以及当时的一个字符串。

更准确地说,tmux ls 的输出类似于:

1: 1 windows (created Thu Mar 25 12:49:17 2021)
2: 1 windows (created Thu Mar 25 12:50:20 2021)
nn312133: 1 windows (created Thu Mar 25 12:53:54 2021)
nn3123: 1 windows (created Thu Mar 25 12:53:52 2021)

grep 的输出是:

nn312133: 1 windows (created Thu Mar 25 12:53:54 2021)
nn3123: 1 windows (created Thu Mar 25 12:53:52 2021)

我应该需要将nn312133nn3123 导入tmux kill-session -t $x

有什么想法吗?谢谢

【问题讨论】:

    标签: bash grep xargs


    【解决方案1】:

    使用grep -Po 让grep 只打印出匹配的部分而不是整行。

    【讨论】:

    • 太棒了!我最终得到了这个:tmux ls | grep -Po "nn\d+" | xargs -I % sh -c 'tmux kill-session -t %'如果有人能找到一个不那么冗长的解决方案,请告诉我
    • 或者更好tmux ls | grep -Po "nn\d+" | xargs -n1 tmux kill-session -t
    【解决方案2】:

    答案是tmux ls | grep -Po "nn\d+" | xargs -n1 tmux kill-session -t

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-05-11
      • 1970-01-01
      • 1970-01-01
      • 2017-01-06
      • 1970-01-01
      • 2013-11-06
      • 2016-03-31
      相关资源
      最近更新 更多