当前位置: 技术问答>linux和unix
shell 编程 有关删除指定行的问题
来源: 互联网 发布时间:2016-08-01
本文导语: 用shell 编程 有关删除指定行(指定的特定内容的行)的问题。 用sed 如下: #!/bin/bash sed -i -e '/aaa/d' 1.txt exit 0 这样可以删除1.txt中含有aaa的这行。 但是如果参数改变,根据指定的参数的删除行 如下: #!/bin...
用shell 编程 有关删除指定行(指定的特定内容的行)的问题。
用sed 如下:
#!/bin/bash
sed -i -e '/aaa/d' 1.txt
exit 0
这样可以删除1.txt中含有aaa的这行。
但是如果参数改变,根据指定的参数的删除行
如下:
#!/bin/bash
INFO=aaa
sed -i -e '/$INFO/d' 1.txt
exit 0
如果改成上述的代码,就删不掉了。我找不到错在哪里,大家帮忙看看。谢谢!
用sed 如下:
#!/bin/bash
sed -i -e '/aaa/d' 1.txt
exit 0
这样可以删除1.txt中含有aaa的这行。
但是如果参数改变,根据指定的参数的删除行
如下:
#!/bin/bash
INFO=aaa
sed -i -e '/$INFO/d' 1.txt
exit 0
如果改成上述的代码,就删不掉了。我找不到错在哪里,大家帮忙看看。谢谢!
|
#!/bin/bash
INFO=aaa
sed -i -e "/`echo $INFO`/d" 1.txt
exit 0
INFO=aaa
sed -i -e "/`echo $INFO`/d" 1.txt
exit 0
|
给变量加上单引号
sed -i -e '/'$INFO'/d' 1.txt
sed -i -e '/'$INFO'/d' 1.txt
|
单引号换成双引号也可以
sed -i -e "/$INFO/d" 1.txt
sed -i -e "/$INFO/d" 1.txt
|
sed -i -e '/$INFO/d' 1.txt
$在单引号里被屏蔽了,自然不行,改成
sed -i -e '/'$INFO'/d' 1.txt
或者
sed -i -e "/$INFO/d" 1.txt
LZ直接copy过去
$在单引号里被屏蔽了,自然不行,改成
sed -i -e '/'$INFO'/d' 1.txt
或者
sed -i -e "/$INFO/d" 1.txt
LZ直接copy过去
|
单引号换成双引号,sed里面单引号变量shell不会展开