首页 文章

仅当第二个文本文件中也存在第二个字段时,才将第一个文本文件中的两个文本文件组合在一起

提问于
浏览
0

我有两个文本文件,我想以某种方式组合,但基于第一个文件中的第二个字段替换 . 以下是第一个文件的格式 . 哪个是来自语料库的数字 .

file_1.txt

1000 the
999 been
950 phone
850 ball
800 watch
799 porch

文件2是可以在第一个文件中找到的一些单词,但是在第二个字段中有该单词的细分 .

file_2.txt

the th e
been be en
shirt sh ir t
phone pho ne
desk d esk
chair cha i r
watch wa t c h
floor f loo r

我想得到的是下面 . 当两个文件中都有单词时,我喜欢只从第二个文件中分出单词 .

file_3.txt

1000 th e
999 be en
950 pho ne
850 ball
800 wa t c h
799 porch

我一直在尝试根据字段在两个文件之间做一些 sort 东西,但我很丢失 .

1 回答

  • 0

    你可以使用Awk:

    awk 'FNR == NR { m[$2]=$1 } FNR != NR && $1 in m { w=$1; $1=""; print m[w] $0}' file_1.txt file_2.txt
    

    那是:

    • 对于第一个文件中的每一行,构建 word -> id 的 Map

    • 对于第二个文件中的每一行:

    • 将第一个字段(单词)保存在变量中

    • 清除第一个字段

    • 使用 Map 和单词以及行的其余部分打印id

相关问题