我想编辑几个AIX主机的/ etc / filesystems。我想替换所有行:
/usr/sap/interfaces:
dev = /my_mount/mnt
与
usr/sap/interfaces:
dev = "/my_mount/mnt"
到目前为止我试过了:
sed 's/^dev/\/my_mount\/mnt/"\/my_mount\/mnt"/'
但它没有用。我尝试使用ssh远程执行此操作,因此我使用如下命令:
ssh username@servername 'sed \'s/^dev/\/my_mount\/mnt/"\/my_mount\/mnt"/' '
那么这样做的正确方法是什么?
提前致谢。
答案 0 :(得分:1)
您要做的第一件事是更改您在<form action="send.php" method="POST">
<input type="number" onkeyup="checkField(this)"/>
</form>
中使用的分隔符,因为您正在尝试匹配包含大量斜杠的内容。
你要做的第二件事是更改传递给ssh的命令中使用的引用,这次是因为sed喜欢撇号。这使事情更容易阅读。
那应该给你一个像这样的命令:
sed
如果这会产生您想要的输出,那么您可以使用ssh username@servername "sed '/^dev/s#\(/my_mount/mnt\)#\"\1\"#' /usr/sap/interfaces"
arg:
-i
请注意,此时您很可能会收到类似ssh username@servername "sed -i '/^dev/s#\(/my_mount/mnt\)#\"\1\"#' /usr/sap/interfaces"
的错误,因为您的普通用户帐户无法编写内联编辑所需的临时文件。如果发生这种情况,您需要在命令中添加sed: couldn't open temporary file /usr/sap/sedEYALyx: Permission denied
。