我试图在脚本中修改我的linux机器上的某个文件.该文件是/etc/pam.d/login文件.问题是文件的内容是,
# Prints the message of the day upon succesful login. # (Replaces the `MOTD_FILE' option in login.defs) # This includes a dynamically generated part from /run/motd.dynamic # and a static (admin-editable) part from /etc/motd. session optional pam_motd.so motd=/run/motd.dynamic noupdate session optional pam_motd.so
我需要注释掉这个文件中的第二个会话行,但是当我去字符串匹配时,结果如下(我正在使用SED为那些感兴趣的人这样做).
# Prints the message of the day upon succesful login. # (Replaces the `MOTD_FILE' option in login.defs) # This includes a dynamically generated part from /run/motd.dynamic # and a static (admin-editable) part from /etc/motd. #session optional pam_motd.so motd=/run/motd.dynamic noupdate #session optional pam_motd.so
因为第一行也符合条件.我如何确保整行与"会话可选pam_motd.so"匹配,而不仅仅是它的某个部分.
谢谢!
你需要在正则表达式中使用line start(^
)和line end($
).喜欢:
sed -i '/^session optional pam_motd.so$/s/^/#/' /path/to/file