2015-11-01 91 views
1

我在这个网站上看过很多解决方案,但没有人帮我解决了我的问题。 我得到了含sed从文件中删除变量中的确切模式

aaa 
bbbb 
bb 
ddddd 
dd 
ccccc 
ccc 

我试图删除一个确切符合sed -i /$1/d ./.resources 1,其中$文件是用户输入。当我填写bb时,假设只删除bb,而不是像bbbb那样的所有匹配模式。我已尝试使用\<\>来确定模式,例如sed -i /\<$1\>/d ./.resources,但它不起作用。我究竟做错了什么?我该如何解决这个问题?

回答

1

你得比赛只有那些拥有该行的起点和终点之间的模式恰好线使用^和$操作: 因此,对于您的示例代码将是:

sed -i /^${1}$/d ./.resources 
+0

由于它的工作! –

1

你需要告诉SED的模式应该这个范围内匹配:

  • 开始行:^
  • 行尾:$

所以,这将工作:

set -- dd 

sed '/^${1}$/d' ./.resources