我有100个txt文件,每个文本文件只包含一个长列中的ID。我想在所有100个文件中找到每个ID,如果100个文件中至少有90个出现ID,则ID将附加到文件中。程序将查找所有文件中的每个ID,并输出至少90%的文件中找到的所有ID。我知道该怎么做,但我不能把它放在一个shell脚本中。例如,每个文件看起来像这样
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 :(得分:0)
awk '
BEGIN { num_files = ARGC - 1 }
{ count[$1]++ }
END {
for (id in count)
if ( (count[id]/num_files) >= 0.9)
print id
}
' *.txt