Chinaunix
标题:
处理多次重复问题
[打印本页]
作者:
xunong
时间:
2016-08-22 10:03
标题:
处理多次重复问题
求助大家:
假如文本1里面有部分内容与文本2内容重复,且在文本2内对应不同标题,如何提取出来:
文本1 : 文本2:
@11
@aa
123
123
@12
@bb
111
123
@xx
222
生成:
@aa
123
@bb
123
作者:
jason680
时间:
2016-08-22 10:19
$ awk 'FNR==NR{a[$0]=1;next}{if(/^@/){h=$0"\n";next}if(a[$0])print h$0}' 1 2
@aa
123
@bb
123
作者:
杰瑞26
时间:
2016-08-22 17:20
awk写不来,用笨一点的方法,写个小脚本吧。
#!/bin/bash
arr=(`cat file1 | egrep '^[0-9]+'`)
for item in ${arr[@]}
do
cat file2 | grep -B 1 $item | tee -a output
done
复制代码
作者:
wh7211
时间:
2016-08-22 22:25
本帖最后由 wh7211 于 2016-08-22 22:27 编辑
假如文本1里面有部分内容与文本2内容重复,
且在文本2内对应不同标题
,如何提取出来
awk 'ARGIND==1&&$1~/^@/{s=$1;next}ARGIND==1{a[$1]=s;next}$1~/^@/{t=$1;next}{if(a[$1]&&a[$1]!=t)print t"\n"$1}' 1 2
@aa
123
@bb
123
复制代码
作者:
jcdiy0601
时间:
2016-08-23 09:26
awk 'NR==FNR{a[$1]=$1;next}{if(a[$1]){print test"\n"a[$1]}{test=$0}}' 1 2
复制代码
作者:
moperyblue
时间:
2016-08-23 09:52
more 1 2
::::::::::::::
1
::::::::::::::
@11
123
@12
111
::::::::::::::
2
::::::::::::::
@aa
123
@bb
123
@xx
222
@11
123
复制代码
awk 'NR==FNR&&/@/{getline x;a[x]=$0 RS x}/@/{getline x;if(a[x]&&a[x]!=$0 RS x)print $0 RS x}' 1 2
复制代码
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2