Sed 匹配一个字符串,如果它有。(点)在结果前面

Sed 匹配一个字符串,如果它有。(点)在结果前面,sed,Sed,下面是我用来匹配变量中的字符串并删除匹配所在行的内容: sed-i'/'$domainAndSuffix.cfg'/d'/etc/file 我想知道如何匹配变量中的字符串,但是如果文件中的匹配项具有。在紧邻它的左边,它将不会删除这一行,并继续浏览文件,直到它找到一个匹配项,但没有一个匹配项 示例文件内容: happy.domain.com pappy.domain.com domain.com 要匹配的字符串: domain.com 所需的文件输出: happy.domain.com pappy

下面是我用来匹配变量中的字符串并删除匹配所在行的内容:

sed-i'/'$domainAndSuffix.cfg'/d'/etc/file

我想知道如何匹配变量中的字符串,但是如果文件中的匹配项具有。在紧邻它的左边,它将不会删除这一行,并继续浏览文件,直到它找到一个匹配项,但没有一个匹配项

示例文件内容:

happy.domain.com
pappy.domain.com
domain.com

要匹配的字符串:
domain.com

所需的文件输出:

happy.domain.com
pappy.domain.com

*编辑: 实际文件内容:

cfg_file=/etc/nagios/objects/http_url/bob.ca.cfg
cfg_file=/etc/nagios/objects/http_url/therecord.com.cfg
cfg_file=/etc/nagios/objects/http_url/events.therecord.com.cfg
cfg_file=/etc/nagios/objects/http_url/read.therecord.com.cfg
cfg_file=/etc/nagios/objects/http_url/wheels.ca.cfg
cfg_file=/etc/nagios/objects/http_url/used-vehicle-search.autos.ca.msn.com.cfg
cfg_file=/etc/nagios/objects/http_url/womensweekendshow.com.cfg
cfg_file=/etc/nagios/objects/http_url/yorkregion.com.cfg
cfg_file=/etc/nagios/objects/http_url/yourclassifieds.ca.cfg

如果前面的子字符串是固定的,则可以尝试以下操作:

PREFIX='cfg_file=\/etc\/nagios\/objects\/http_url\/'
DOMAIN='therecord.com'
sed -i "/^${PREFIX}${DOMAIN}/d" file
如果它不是固定的,最好使用一个,但是
sed
不能这样做。您可以使用
ssed
GNU-grep

ssed -Ri '/(?<!\.)'"$DOMAIN"'.cfg/d' file

sed-Ri'/(?@Beta是的。最好先忘记它,而不是过早地申请:)我会马上试一试我做了什么:
sed-in'/\.“$domainAndSuffix”“/p'/etc/nagios/nagios.cfg


文件内容:

\u cfg\u文件=/etc/nagios/objects/http\u url/chat.jbodyperformance.com.cfg
\u cfg\u文件=/etc/nagios/objects/http\u url/jbodyperformance.com.cfg
输出:

\u cfg\u文件=/etc/nagios/objects/http\url/chat.jbodyperformance.com
_cfg\u file=/etc/nagios/objects/http\u url/chat.jbodyperformance.com.cfg\ubr>\u cfg\u file=/etc/nagios/objects/http\u url/jbodyperformance.com.cfg\ubr>
有趣的结果……这应该是对我答案的评论吗
-i
应该是最后一个选项,在您的情况下,
n
可以解释为后缀。尝试
-ni
而不是
-in
中的
。对不起,是的,这应该是对您的评论的评论!再试一次。:)成功了!但它删除了其余的文件内容..:(也许一开始我还不清楚..一百万次道歉。我运行的是:
sed-ni'/\.“$domainAndSuffix”'/p'/etc/nagios/nagios.cfg
$domainAndSuffix=“jbodyperformance.com”
文件内容:morestuff.jbodyperformance.com test.com happy.com chat.jbodyperformance.com jbodyperformance.com之后的文件内容:jbodyperformance.com
grep -vP '(?<!\.)'"$DOMAIN" > file1; mv file1 file