这是我的问题:我有两个文件,一个有名字(大约1k行,没有重复)
File_Names
A
C
F
Run Code Online (Sandbox Code Playgroud)
还有第二个带有名称和数据的文件(大约100k行,没有重复)
File_Data
A
Data_A
B
Data_B
C
Data_C
D
Data_D
E
Data_E
F
Data_F
Run Code Online (Sandbox Code Playgroud)
我需要从名称搜索到数据文件,打印结果和下一行.
就像是:
A
Data_A
C
Data_C
F
Data_F
Run Code Online (Sandbox Code Playgroud)
我有找到数据文件名称的部分,但仍无法打印下一行
awk 'FNR==NR{
a[$1]++;
next}
a[$1]
' File_Names File_Data
Run Code Online (Sandbox Code Playgroud)
这回来了
A
C
F
Run Code Online (Sandbox Code Playgroud)
这是我所保留的代码的一部分,因为我已经尝试过其他代码
awk 'FNR==NR{
a[$0]=FNR;i=FNR;next}
($0 in a){
t=$0;
getline;b[a[t]]=$0}
END{
for(k=1;k<=i;k++)print b[k]
}'
Run Code Online (Sandbox Code Playgroud)
并添加/删除行,如:
- {x=NR+1}(NR<=x){print}
- {getline;print;}
Run Code Online (Sandbox Code Playgroud)
也尝试使用grep
grep -f File_Names File_Data
Run Code Online (Sandbox Code Playgroud)
但仍然没有.对不起重复的问题,但可用的解决方案对我不起作用.提前致谢.
grep 解:
grep -A1 --no-group-separator -xf File_Names File_Data
Run Code Online (Sandbox Code Playgroud)
A num- num匹配行后打印尾随上下文行--no-group-separator - 不要在行组之间打印分隔符输出:
A
Data_A
C
Data_C
F
Data_F
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
44 次 |
| 最近记录: |