cat 1.dat a1 a2 a3 b1 b2 b3 c1 c2 c3 由另外一个黑名单文件 filter.txt 内容为 a2 我想要判断1.dat的$2 是否在filter.txt里,如果不存在则print $0,否则跳过 在grep里可以 -vf ,但是awk 里怎么对某个字段进行类似操作呢? 请大家指教,谢谢
比如某个行有15(各个行都不一样)个域,我想打印从第10个域到最后一个域间的数据,而且结果还是显示在一行上,不知道怎么实现。 [ 本帖最后由 yang-wei 于 2007-11-27 13:49 编辑 ]
假设有一过滤文本 filter.txt 内容为过滤规则的正则表达式或某特定词 cat filter.txt ^\/*.js$ *.jpg$ adtest 样本数据 a.dat 为某段日志 cat a.dat 59.39.253.253 /scripts/js/createAjaxObject.js "aaa" 117.44.45.132 /main/login.do "bbb" 117.68.36.136 /html/3230.html "ccc" 117.44.45.132 /user.jsp "ddd" 222.185.4.1 /logo.jpg "eee" 222.138.185.69 /adtest.shtml "fff" 希望根据filter.txt的过滤规则(也就是说fil...
如文件1: 123|阿巴丹|12345|99w2s|92sdfs| 123|22222|12346|99w2s|92sdfs| 123|22222|12346|99w2s|92sdfs| 123|22222|12346|99w2s|92sdfs| 123|22222|123466|99w2s|92sdfs| 要求如下: 将文件中第三个字段由5位升级为10位,规则是:如果第三个字段长度是5,则进行升位,第1位和第2位之间补5个0。 本文来自: IXPUB技术社区(www.ixpub.net) 详细出处参考:http://www.ixpub.net/thread-902205-1-1.html
我需要将一个文件内容按某域的值(IP地址,有250,000种可能)分别输出到不同的文件中。例如, 文件内容 1234|20.2.0.0|34323342|20000109 1234|20.2.1.0|34323342|20010110 1234|20.2.0.0|34323342|20000109 1234|10.0.0.0|34323342|20000109 1234|20.2.0.0|34323342|20000109 1234|254.3.2.1|34323342|20000109 我希望用awk把上述文件按第二域的值进行分割为 20.2.0.0.txt 1234|20.2.0.0|34323342|20000109 1234|20.2.0.0|3432334...
$ cat test.txt a#@||@#b#@||@#c#@||@#x#@||@#|| d#@||@#e 1#@||@#3#@||@#5 a#@||@#1#@||@#2#@||@#3#@||@#4#@||@#x#@||@#|| a#@||@#f#@||@#r#@||@#t#@||@#x#@||@#|| 4#@||@#5 $ awk -F"#@||@#" '{print $1}' test.txt a d 1 a a 4 $ awk -F"#@||@#" '{print $2}' test.txt | | | | | | $ awk -F"#@\|\|@#" '{print $2}' test.txt | | | | | | $ awk -F'#@||@#' '{print $2}' test.txt | | | | | | $ awk 'BEGIN{FS="#@||@#"}{print...