关闭具有特定名称的 tmux 会话

Close tmux session with a particular name

我想要一个命令来关闭名称对应于模式的所有 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

有什么想法吗?谢谢

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

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