2016-01-15 21 views
-1

我有100個txt文件,每個文本文件僅在一個長列中包含ID。我想在全部100個文件中查找每個ID,如果在100個文件中至少有90個出現ID,則ID將被附加到文件中。該程序將查找所有文件中的每個ID並輸出在至少90%的文件中找到的所有ID。我有一個想法,但我不能把它放在一個shell腳本中。例如,每個文件看起來像這樣如果在超過90%的文件中找到搜索和輸出項目

file_1.txt 

BGIBMGA010657 
BGIBMGA010658 
BGIBMGA010659 
BGIBMGA010664 
BGIBMGA010666 
BGIBMGA010671 
BGIBMGA010673 
BGIBMGA010674 
BGIBMGA010676 
BGIBMGA010685 
BGIBMGA010687 
BGIBMGA010699 
BGIBMGA010714 
BGIBMGA010723 

的代碼會做這樣的事情

for line in file 
    for files in *.txt 
     if line found in at least 90 files 
     append line in a new file 

我需要將其轉換成一個shell腳本。 謝謝

+0

你有什麼具體問題嗎? – 123

+0

我會爲此使用[tag:awk]:保留找到的所有id的計數,並且在所有文件處理完畢後,遍歷所有id並且如果count> = 90,則打印它。 –

+0

這正是我想要做的,但我不能在這方面拿出一個shell腳本。 – Uzo

回答

0
awk ' 
    BEGIN { num_files = ARGC - 1 } 
    { count[$1]++ } 
    END { 
     for (id in count) 
      if ((count[id]/num_files) >= 0.9) 
       print id 
    } 
' *.txt 
相關問題