我有2个文件。首先,文件2中也存在少量记录。 File2大于file1。我想在file2显示单词的出现次数(来自file1)。
这是我试过的
file1.txt
bash-3.00# cat file1.txt |wc -l
17102666
more file1.txt
123advertise3
123advertise4
123advertise5
123advertiseb
123advertisec
123advertised
123advertisedebtconsolidation
123advertisee
123advertisef
123advertiseg
123advertiseh
123advertisehomaxproducts
文件2
file2.txt
bash-3.00#cat file2.txt | wc -l
113842500
more file2.txt
123123apartment
123123attorney
123123auction
123123auto
123advertisedebtconsolidation
123advertiseb
123123automate
123123automatic
123123bank
123advertisedebtconsolidation
123advertiseb
123123banking
123123bankruptcy
123advertisedebtconsolidation
123123bargain
123123best
123123blog
123advertisedebtconsolidation
123123building
我想要这样的输出
123advertisedebtconsolidation 3
123advertiseb 2
我跑到命令
下面bash-3.00# nawk 'FNR==NR{c[$1];next}$1 in c{++c[$1]}END{for(i in c) print i,c[i]}' file1.txt file2.txt
但我没有得到理想的输出。
我只有字符串
peaktablethomecsuchico
browsepropertyhomebase
clickflowershomedsn
worldwideflowerstravelagency
acepigb
acepigc
browsecompanytravelagent
liveearnhomedownpaymentassistance
acepigd
bargainsystemhomebvcure
acepige
acepigf
uniquecasinohomecycling
alternativeanyhomecanningrecipes
acepigj
annualsurveyhomedma
任何人都可以帮我在特殊的大文件中使用grep或awk获取此类输出。我在较小的文件上尝试过相同的操作,但它运行正常。
答案 0 :(得分:0)
uniq
命令可能是输出公共字符串的简单方法。 -c选项指定输入中的匹配数。 awk命令只输出具有多个出现的行。
cat file1.txt file2.txt | sort | uniq -c | awk '{ if ($1 > 1) print $0; }'