我希望使用sed将“#”添加到特定文件中此行的开头。脚本将在.sh文件中运行,而不是在控制台中键入。
auth [success=1 default=ignore] pam_unix.so nullok_secure
应该是:
#auth [success=1 default=ignore] pam_unix.so nullok_secure
我正在尝试类似的命令:
sudo sed -e '/auth[[:tab:]][success=1[[:space:]]default=ignore][[:tab:]]pam_unix.so[[:space:]]nullok_secure/ s/^#*/#/' -i /etc/pam.d/common-auth
我知道上面的命令是错误的,因为
[[:tab:]]
不是有效的命令。我只想显示标签出现的位置。感谢您的帮助!!! 谢谢!!!
最佳答案
它工作。。。
sed -e '/^auth\t\[success=1\ default=ignore\]\tpam_unix.so\ nullok_secure/ s/^/#/' -i file
我只是用
\t
而不是[[:tab:]]
而不是
关于linux - 如何在Linux Bash脚本文件中使用'sed'注释掉带有制表符间距的特定行?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39863999/