当使用sed替换文件中的内容的时候
如何匹配以指定内容开头的位置,而不是匹配所有在文件中出现的位置呢?
使用^来解决
sed 's/^PASS_MAX_DAYS/PASS_MAX_DAYS 90'
所有以PASS_MAX_DAYS开头的行在该值后面都会被替换,并且,可以看到注释中的相同内容因为是以#开头,因此没有被匹配
然而如果只使用^匹配,它会只把前面的内容替换,当前行后面的内容并不会被修改
因此需要在匹配内容中加入.*来匹配一整行
sed 's/^PASS_MAX_DAYS.*/PASS_MAX_DAYS 90'