sed:-e 表达式 #1,字符 52:“s”的未知选项
sed: -e expression #1, char 52: unknown option to `s'
我只是使用简单的 sed 替换来替换文件中的一些字符串,方法是从变量中读取它的值
猫file.txt
root="/content/drive/Shared drives/Media Library"
# some other lines
# ...
在上面的文件 txt 中,我打算将第 1 行中的 /content/drive/Shared drives/Media Library
替换为通过 bash 脚本读取的变量 path
的值。
例如 - 如果我输入 /home/user
作为变量的值,则 file.txt 中的第 1 行应修改如下:
root="/home/user"
这是我的 bash 脚本,其中包含 sed 表达式
#!/usr/bin/env bash
read -e -p "Enter the path: " path
sed -i "1s/\/content\/drive\/Shared drives\/Media Library/${path}/" file.txt
当我执行 bash 脚本并输入 /home/user
路径时,returns 出现以下错误 -
sed: -e expression #1, char 52: unknown option to `s'
使用 sed
处理文件路径时,您可以使用不属于要处理的值的备用分隔符来简化操作。分隔符可以是 s
命令后的任何字符。正斜杠 /
经常出现在示例中,但可以是任何其他字符,如 |
或 #
。这使得无需转义值中的 /
。例如:
sed -i "1s|/content/drive/Shared drives/Media Library|${path}|" file.txt
我只是使用简单的 sed 替换来替换文件中的一些字符串,方法是从变量中读取它的值
猫file.txt
root="/content/drive/Shared drives/Media Library"
# some other lines
# ...
在上面的文件 txt 中,我打算将第 1 行中的 /content/drive/Shared drives/Media Library
替换为通过 bash 脚本读取的变量 path
的值。
例如 - 如果我输入 /home/user
作为变量的值,则 file.txt 中的第 1 行应修改如下:
root="/home/user"
这是我的 bash 脚本,其中包含 sed 表达式
#!/usr/bin/env bash
read -e -p "Enter the path: " path
sed -i "1s/\/content\/drive\/Shared drives\/Media Library/${path}/" file.txt
当我执行 bash 脚本并输入 /home/user
路径时,returns 出现以下错误 -
sed: -e expression #1, char 52: unknown option to `s'
使用 sed
处理文件路径时,您可以使用不属于要处理的值的备用分隔符来简化操作。分隔符可以是 s
命令后的任何字符。正斜杠 /
经常出现在示例中,但可以是任何其他字符,如 |
或 #
。这使得无需转义值中的 /
。例如:
sed -i "1s|/content/drive/Shared drives/Media Library|${path}|" file.txt