看啥推荐读物
专栏名称: 王诗翔
三十年来寻刀剑,几回落叶又抽枝?自从一见桃花后,而今却是再不疑。 ———————— 我已加入“维权骑士”(rightknights.com)的版权保护计划。
目录
相关文章推荐
今天看啥  ›  专栏  ›  王诗翔

【Shell笔记>实用】根据一个文本列索引提取另一个文本列内容

王诗翔  · 简书  ·  · 2018-06-08 11:47
文本内容

今天微信群有朋友讨论这样一个问题,怎么根据上图中所示的2.txt第一列作为索引,提取1.txt中对应的列。

简单使用join命令显然不能完成这样一个任务,但是我们仔细观察文本1可以发现如果将它转置就符合join的基本条件了,这时候只需要到网上找别人写好的进行行列互换的脚本就可以了,并不需要自己费心费心进行循环计算。

$ awk '{for(i=0;++i<=NF;)a[i]=a[i]?a[i] FS $i:$i}END{for(i=0;i++<NF;)print a[i]}' \
   1.txt | join - 2.txt | \
   awk '{for(i=0;++i<=NF;)a[i]=a[i]?a[i] FS $i:$i}END{for(i=0;i++<NF;)print a[i]}'  

操作就是先转置,然后使用join粘贴,然后再转置回来。




原文地址:访问原文地址
快照地址: 访问文章快照