Bash sed -i 更新尾部反斜杠
Bash sed -i update with trailing backslash
我想 运行 这个 :
sed -i -e "s/\($user hard nproc \).*/{value here ending with /}/" /etc/something.conf
此处,{此处以 /} 结尾的值类似于 100/ 或 abc /
但是如果我只是放/喜欢 :
sed -i -e "s/\($user hard nproc \).*/abc//" /etc/something.conf
我收到这个错误:
`s'的未知选项
我一直想解决这个问题,但想不出任何解决方案...
基本上我想做的是更新我的旧值
“用户名 hard nproc 10”
到“用户名 hard nproc 10**”
与“**”。
您需要对结尾的斜线进行转义或对表达式使用不同的字符。即:
sed -i "s/\($user hard nproc \).*/abc\//" /etc/cgrules.conf
或
sed -i "s#\($user hard nproc \).*#abc/#" /etc/cgrules.conf
遵循简单的 sed 对我来说效果很好。
echo "username hard nproc 10" | sed 's/username hard nproc 10/username hard nproc 10**/g'
username hard nproc 10**
假设您想将这些旧值和新值放入变量中,那么以下内容可能会对您有所帮助。
old_value="username hard nproc 10"
new_value="username hard nproc 10**"
echo "username hard nproc 10" | sed "s/$old_value/$new_value/g"
输出如下。
username hard nproc 10**
同样,尽管此处有回声,您也可以提及您的 Input_file。如果您想保存 Input_file 本身的更改,也可以使用 sed
的 -i
选项(我建议 运行 以上代码不对 Input_file 进行更改,然后 运行 与 -i
选项,一旦您对结果感到满意)。
在 sed 中,每当你想用 /
做某事时,它会妨碍用于命令的 /
,最简单的做法是使用不同的分隔符命令。例如:
sed -e "s@\($user hard nproc \).*@{value here ending with /}@"
会很好用。 s/pattern/repl/flags
只是一个约定,你也可以使用s@pattern@repl@flags
我想 运行 这个 :
sed -i -e "s/\($user hard nproc \).*/{value here ending with /}/" /etc/something.conf
此处,{此处以 /} 结尾的值类似于 100/ 或 abc /
但是如果我只是放/喜欢 :
sed -i -e "s/\($user hard nproc \).*/abc//" /etc/something.conf
我收到这个错误: `s'的未知选项
我一直想解决这个问题,但想不出任何解决方案...
基本上我想做的是更新我的旧值 “用户名 hard nproc 10” 到“用户名 hard nproc 10**” 与“**”。
您需要对结尾的斜线进行转义或对表达式使用不同的字符。即:
sed -i "s/\($user hard nproc \).*/abc\//" /etc/cgrules.conf
或
sed -i "s#\($user hard nproc \).*#abc/#" /etc/cgrules.conf
遵循简单的 sed 对我来说效果很好。
echo "username hard nproc 10" | sed 's/username hard nproc 10/username hard nproc 10**/g'
username hard nproc 10**
假设您想将这些旧值和新值放入变量中,那么以下内容可能会对您有所帮助。
old_value="username hard nproc 10"
new_value="username hard nproc 10**"
echo "username hard nproc 10" | sed "s/$old_value/$new_value/g"
输出如下。
username hard nproc 10**
同样,尽管此处有回声,您也可以提及您的 Input_file。如果您想保存 Input_file 本身的更改,也可以使用 sed
的 -i
选项(我建议 运行 以上代码不对 Input_file 进行更改,然后 运行 与 -i
选项,一旦您对结果感到满意)。
在 sed 中,每当你想用 /
做某事时,它会妨碍用于命令的 /
,最简单的做法是使用不同的分隔符命令。例如:
sed -e "s@\($user hard nproc \).*@{value here ending with /}@"
会很好用。 s/pattern/repl/flags
只是一个约定,你也可以使用s@pattern@repl@flags