2017-07-02 76 views
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的東西,但我敢丟失。

+0

的其餘部分隨着'join','sort','sed','awk' id和'bash':'join -t _ -1 2 -2 1 -a 1 <(sed's// _ /'file_1.txt | sort -t _ -k 2,2)<(sed's// _ /'file_2.txt | sort -t _ -k 1,1)-o 1.1,1.2,2.2 | sed's/_ $ //'| awk -F _'{print $ 1,$ NF}'| sort -nr' – Cyrus

回答

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
  • 對於第二個文件的每一行:
    • 將第一個字段(單詞)保存在變量中
    • 清除所述第一場
    • 打印使用地圖和字,線
相關問題