求一个AWK文本比对语句
时间:2011-03-29
来源:互联网
文本a.txt内容:
dsdc|1235|错误
swwe|4096|错误
文本b.txt内容
1|aa|bb
2|ss|ff
...
1235|sg|aa
...
4096|cc|ar
...
说明:文本a.txt中第二列是b.txt的行号,现需将b.txt包含在a.txt 第二列的行号全部打印出来为c.txt
结果如下:
1235|sg|aa
4096|cc|ar
dsdc|1235|错误
swwe|4096|错误
文本b.txt内容
1|aa|bb
2|ss|ff
...
1235|sg|aa
...
4096|cc|ar
...
说明:文本a.txt中第二列是b.txt的行号,现需将b.txt包含在a.txt 第二列的行号全部打印出来为c.txt
结果如下:
1235|sg|aa
4096|cc|ar
作者: haiyuey 发布时间: 2011-03-29
本帖最后由 xiaopan3322 于 2011-03-29 17:54 编辑
awk菜鸟,我只会这种垃圾代码,有点不堪入目,不要介意:
复制代码
awk菜鸟,我只会这种垃圾代码,有点不堪入目,不要介意:
- $ for i in `awk -F'|' '{print $2}' urfile1`; do grep $i urfile2; done
- 1235|sg|aa
- 4096|cc|ar
作者: xiaopan3322 发布时间: 2011-03-29
awk -f test.awk a.txt b.txt
BEGIN{
FS = "|"
}
FNR==NR{
array[$2] = $0
}
FNR!=NR{
if ($1 in array)
print array[$1] >> c.txt
}
BEGIN{
FS = "|"
}
FNR==NR{
array[$2] = $0
}
FNR!=NR{
if ($1 in array)
print array[$1] >> c.txt
}
作者: chenbin200818 发布时间: 2011-03-29
回复 haiyuey
awk -F'|' 'NF==FNR{a=$2}NF!=FNR{if($0~/a/)print $0}' a b
awk -F'|' 'NF==FNR{a=$2}NF!=FNR{if($0~/a/)print $0}' a b
作者: wtuter 发布时间: 2011-03-29
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28