从分隔列文件中提取非分隔列

时间:2013-02-03 17:41:17

标签: bash awk grep

列之间没有分隔符的文件:

cat file_no_del 
 aba14092999140932436
 aba1111478991111484975
 aba1111973668111975690

如何从原始文件中提取这些行(列之间有分隔符)?并将其保存在带分隔列的新文件中?

cat original_file
 aba1   40929991    40932436
 aba1   100496122   100501188
 aba1   101708714   101709305
 aba1   111478991   111484975
 aba1   111973668   111975690

cat wanted_output
 aba1   40929991    40932436
 aba1   111478991   111484975
 aba1   111973668   111975690

我当时认为可以这样做:

for i in $(sort orginal_file); do awk '{print $1$2$3}' $i | grep -w - file_no_del

但是我遇到了awk& amp;不知道如何在greping之后我应该回到分界形式的循环中 希望有人能帮助我。

1 个答案:

答案 0 :(得分:2)

如果file_no_del足够小,请执行以下操作:

awk 'NR==FNR{ a[$0]++ } NR!=FNR && a[$1 $2 $3]' file_no_del original_file