当前位置:Linux教程 - Linux资讯 - awk文本处理

awk文本处理

  我有2个文本文件 我从第一个文本文件中取得一行文本中变量中的字符串,再附值另一个变量----这一步我已实现 现我想到第二文本中搜索上一步附值的变量,并从搜索到的行或行中的某一变量中取得字符 串变量再返回第一文本中执行命令(余下命 令中要用到第二文本中取得的字符串变量)。 请高手出手,不知该如何实现??????? 能不能给两个文本,这种东西每个实现方式多是不一样的 tmp1: qwe rtgbh52800op poil 7851fghjj874 tmp2 poil 999rrr qwe uytppp 我现在要用tmp2中的$2字段中的几个字符串替换tmp1中的$2字段中的几个字符串 Like database, use 'join' ! 当然不是这么简单 我也想问问?AWK中能同时对两个文件操作吗?或者AWK可以嵌套吗?如果都不行,那你可以试试用SHELL编个小程序。 for var1 in `cat tmp1' done for var2 in 'cat tmp2' done if var1 ? var2 then command var1 var2 do do 当然我也知道的不多,你可以考虑类似的想法! awk ' BEGIN { i=1 while((getline < "tmp2")>0) { F[[i]]=$1; S[[i]]=$2; i++ } line=i } { for(j=1;j<=line;j++) { if($1==F[[j]]) printf "%s,%s ",$1,S[[j]] } } ' tmp1 先把tmp2文件的$1,$2读入数组,然后再操作tmp2 ------------- Sorry: 昨天写完之后没有仔细看 楼上的是否应是 { F[i]=$1; S[i]=$2; i++ } 如果要求就是像tmp1,tmp2那样,为什么不这样:(要是想把tmp1中不匹配的也打出来稍微改动即可) while read line;do key=`echo $linecut -d" " -f1` grep $key tmp2 done < tmp1 如果两个排序后第一列一样的话,用paste也很简单. 第一列不一样的 我有如下二个文本temp1 qwaszbbbpol 2001020300000666.25000009875213 rfvcgaaaujn 3021545669000008.99000000000512 ... ... temp2 985hjklfsaaa95fh 7845.56 fv5684521bbBTgd6 44.14 ... ... 现要根据第一列中字段中的aaa或bbb,... 为两个文本的对应关系,搜索到以后用temp2中 的$2值替换temp1中$2中的有小数点的其中几个字符或数值 DO YOU KNOWN ???? 我想你的问题只不过又增加了复杂度。 你可以在awk里用substr。 不喜欢做类似的家庭作业。 是Do you know吧。 这是我的实际问题,我要统计数据! 我靠,受不了了。(对不起,我很少这么冲动),发帖子也是要讲学问的,否则只有让人生厌,哪里能解决问题。我先泛泛说说发帖的问题: 有内容(不要只靠个标题就over了吧) 题目既引人又能实事求是的说明问题("help!求救!"来这的,有谁不是要说help的?将来看到这样的题目谁能知道是干什么的?) 经过自身思考(不要东抄西抄,或是有一点问题,毫不探究,直接问将上来,连自己身边的参考书或是man帮助都不查一下;别人的回答,即使没有100%解决问题,关键地方解决了,其余凭自己完全可以搞定,也不死心的追问不停,直到获得100%的代码,paste完事) 表达清楚(是什么就是什么,颠三倒四或是含糊其辞、连连省略地说一大通,唐僧也要自愧不如的) 描述详尽(发了帖自己至少要推敲一番,假定别人完全没有你的问题背景,能不能领会你的意思?相关的细节是否说清楚了呢?不要让别人反复追问你细节都得7,8帖吧) 这位ljp0683仁兄,也许你的问题涉及保密性,你可以不按问题的原样来问大家,可是就得保证你的描述方式是清楚地啊。大家好意的猜测你的意思,提出自己的解决方法,你再挤牙膏地告诉,不是这样不是那样,最终举的例子也没把问题说清楚,还挺有火气。斑竹的目前的回应心情也就完全可以理解了。
[1] [2] 下一页 

我来问问你的描述是什么意思?第一列的aaa,bbb是怎样确定的?是几个连续的字符?(若是,那是连续几个呢)还是从固定的第几个字符算起到第几个字符结束?找不到对应关系的行怎么处理?还有到底是temp2的$2替换temp1的$2的哪个?是$2全部,还是小数点部分? 大家对你的几个回答,一点启发都没有?不能根据大家的思路完成其余的工作? 我们对你的问题背景一无所知,对于我们来说没有默认值的,所以才需要你描述清楚啊!要是多几个这样的帖子,大家的耐心都会磨没的,日子长了,这个论坛也就自己消亡了。

(出处:http://www.sheup.com)


上一页 [1] [2]