+ -
当前位置:首页 → 问答吧 → 请教高手:sed相关问题

请教高手:sed相关问题

时间:2011-07-02

来源:互联网

如下:文本中的一个片段

// 可以修改,TR_SENDMESSAGE_FLAG是否往发送回执消息的开关。1:发送0:不发送
TR_SENDMESSAGE_FLAG=1
// 可以修改,MEM_THREAD_SLEEP发送回执消息的延时时间。前提:TR_SENDMESSAGE_FLAG=1
根据

我想定位到中间标绿的那一行,并修改它的值,应该怎么做?

我遇到的困难:根据TR_SENDMESSAGE_FLAG定位,会定位出三行(+标红的前后两行);根据'TR_SENDMESSAGE_FLAG='定位会定位出两行(包括它的后一行)。这样子,一修改值就会把两行或三行同时修改掉。

请问:该如何解决上述困难?谢谢!!!

作者: wxdlut   发布时间: 2011-07-02

利用^$做词头词尾限制,这样你就可以得到一行了

作者: lgxwqq111   发布时间: 2011-07-02

我对这个不是特别熟悉,能否详细写一下啊,谢谢!

作者: wxdlut   发布时间: 2011-07-02

grep "^TR_SENDMESSAGE_FLAG=1$" file

作者: qiyu1988   发布时间: 2011-07-02

sed -n '/^TR_SENDMESSAGE_FLAG=1$/ p' file

作者: qiyu1988   发布时间: 2011-07-02

#3楼 得分:0回复于:2011-07-02 15:56:33 grep "^TR_SENDMESSAGE_FLAG=1$" file 

用你的方法:报的“Illegal variable name.”

作者: wxdlut   发布时间: 2011-07-02

#4楼 得分:0回复于:2011-07-02 15:59:39sed -n '/^TR_SENDMESSAGE_FLAG=1$/ p' file 

用这个方法的话:一行也找不到啊。 去掉开头的^,和结尾的$话能找到两行,后两行。请问这是为什么呢?

作者: wxdlut   发布时间: 2011-07-02

我用你给的那些文本资料试了下可以啊,两种都可以实现,你检查下是不是命令打错了,file是你的文本名

作者: qiyu1988   发布时间: 2011-07-02

相关阅读 更多