2

我有 2 个文件。首先有很少的记录也存在于 file2 中。文件 2 大于文件 1。我想在 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 获得这样的输出。我在较小的文件上尝试了同样的事情,效果很好。

4

1 回答 1

0

uniq命令可能是一种输出常见字符串的简单方法。-c 选项指定输入中的匹配数。awk 命令仅输出多次出现的行。

cat file1.txt file2.txt | sort | uniq -c | awk '{ if ($1 > 1) print $0; }'
于 2013-04-15T10:35:05.533 回答