gpt4 book ai didi

linux - 这个命令在做什么? sed

转载 作者:太空宇宙 更新时间:2023-11-04 10:51:37 25 4
gpt4 key购买 nike

我得到了一组通用命令,用作我必须执行的示例:

1 cat /etc/dsh/machines.list | sed -e "s|\(.*\)|sshfs \1:/opt/dextor/cloud \1|"
2 cat /etc/dsh/machines.list | sed -e "s|\(.*\)|sshfs \1:/opt/dextor/cloud \1|" | sh
3 cat /etc/dsh/machines.list | sed -e "s|\(.*\)|cp run.sh \1/|"
4 cat /etc/dsh/machines.list | sed -e "s|\(.*\)|cp run.sh \1/|" | sh

这到底是做什么的?

我知道 machines.list 的内容正在传递给 sed,但 sed 命令在做什么?

谢谢!

最佳答案

我会解释cat/etc/dsh/machines.list | sed -e "s|\(.*\)|cp run.sh\1/|" 给你,其余的都是一样的。

1) cat 将从 machines.list 中读取行并将其传递给 sed。

2) sed 基本上是在执行匹配和替换 操作。

|作为分隔符,可以是任意字符,一般为/。它基本上是这样工作的 |match this|replace with this|

您正在匹配 \(.*\) 这基本上是告诉 sed 匹配所有内容。. 匹配每个字符,* 表示匹配该字符任意次数。使用 () 会将匹配项保存在 \1 中。

在替换部分,您将用文本 cp run.sh\1/ 替换它,\1 将包含匹配的任何内容。

此外,我确实认为根本不需要使用 cat。最好这样使用 sed -e "s|\(.*\)|cp run.sh\1/|"/etc/dsh/machines.list

关于linux - 这个命令在做什么? sed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30743293/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com