我在这个网站上看过很多解决方案,但没有一个能帮我解决问题。 我有一个包含
的文件aaa
bbbb
bb
ddddd
dd
ccccc
ccc
我已尝试删除sed -i /$1/d ./.resources
的确切行
其中$ 1是用户输入。当我填写bb时,我们假设只删除bb
而不是所有匹配的模式,例如bbbb
。我已尝试将\<\>
用于sed -i /\<$1\>/d ./.resources
之类的精确模式,但它并不起作用。我究竟做错了什么?我该如何解决这个问题?
答案 0 :(得分:1)
您必须使用^和$运算符匹配那些在行的开头和结尾之间完全具有模式的行: 因此,对于您的示例,代码将是:
sed -i /^${1}$/d ./.resources
答案 1 :(得分:1)
你需要告诉sed该模式应该在这个范围内匹配:
所以,这将有效:
set -- dd
sed '/^${1}$/d' ./.resources