linux shell 行处理文本时查找字符串

用whilereadline处理文件每行中取出一个ua字段ua的值是一长串字符然后想在ua字符串中查找一个特定字符串如果查找到就进行下一步处理应该怎么写现在用的是if[`... 用while read line处理文件
每行中取出一个ua字段 ua的值是一长串字符
然后想在ua字符串中查找一个特定字符串 如果查找到就进行下一步处理 应该怎么写
现在用的是
if [ `echo $ua | grep -e "特定字符串" ` ]; then
xxxxxxxxxxxx
fi
但是不想用echo了 因为频繁的写影响处理效率 有什么其他方法么? grep是不是只能处理标准输出或者文件呢?
只能按行处理 没有文件名 不用说 grep “特定字符串”+ 文件名这种。。。
还有取出字段不想用echo有别的方法么?
用的也是 echo $line | awk '{print $2}' 这种方法
展开
 我来答
翎2980493052
2016-06-14 · TA获得超过549个赞
知道小有建树答主
回答量:754
采纳率:100%
帮助的人:453万
展开全部
管道重定向已经够快了,至少远快于文件I/O,既然只能按行处理,那就这样也没什么问题,如果行数实在太多,那就不要切割行了,直接整个输入流重定向,最不济用c写,再用hash预处理优化一下,提升效率总是有办法的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yss624_
2016-06-14 · TA获得超过4.7万个赞
知道大有可为答主
回答量:9775
采纳率:77%
帮助的人:2478万
展开全部
grep ‘字串' <<<$ua
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
一如真a
2016-06-14 · TA获得超过369个赞
知道小有建树答主
回答量:666
采纳率:75%
帮助的人:337万
展开全部
为什么要echo echo有什么用吗 直接判断不行吗
=~ 这个是shell里包含的判断
更多追问追答
追问
你可以试试不用echo能grep出来不~ 嘿嘿
追答
为什么要 grep 
if [ $ua =~ "特定字符串" ]
不就可以了吗 你不就是想判断吗?为啥非得写出来?
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式