root@zhengubuntu:~# sudo sed -i '/^# End of file/.$d' /etc/security/limits.conf sed: -e expression #1, char 17: unknown command: `.'怎么处理
时间: 2025-01-27 08:12:24 浏览: 40
这个错误通常是由于`sed`命令中的正则表达式语法不正确导致的。让我们来分析一下这个命令:
```
sudo sed -i '/^# End of file/.$d' /etc/security/limits.conf
```
这个命令的目的是删除`/etc/security/limits.conf`文件中从匹配`# End of file`的行开始到文件末尾的所有内容。但是,正则表达式的语法有点问题。
要解决这个问题,你可以尝试以下几种方法:
1. 使用正确的正则表达式:
```
sudo sed -i '/^# End of file/,$d' /etc/security/limits.conf
```
这里,`/^# End of file/,$d` 的意思是删除从匹配 `# End of file` 的行到文件末尾的所有内容。
2. 如果你想删除匹配行和其后的所有行,可以使用:
```
sudo sed -i '/^# End of file/,$d' /etc/security/limits.conf
```
3. 如果你的 `sed` 版本支持,也可以使用:
```
sudo sed -i '/^# End of file/,$ { N; d }' /etc/security/limits.conf
```
这个命令会先匹配 `# End of file` 行,然后使用 `N` 命令将下一行也读入模式空间,最后使用 `d` 命令删除这两行。
请注意,在使用 `sed -i` 修改文件之前,建议先备份原文件,以防出现意外情况:
```
sudo cp /etc/security/limits.conf /etc/security/limits.conf.bak
```
执行上述命令后,你应该不会再看到原来的错误信息了。
阅读全文
相关推荐



















