编写shell脚本以查找一个文件的内容到另一个文件并显示所有出现的内容

时间:2015-02-17 06:59:08

标签: linux bash shell unix ubuntu

我需要编写一个shell脚本来查找一个文件的内容[此文件的所有内容]到另一个文件旁边,它显示行号和内容的总出现次数作为输出。

#!/bin/ksh
file="/home/ashish/contents.txt"

while read -r line; 
do
    grep $line /home/ashish/first.csv
done < "$file"

例如: 第一个文件包含此代码 “at java.lang.Object.wait(Native Method) - 在weblogic.rjvm.ResponseImpl.waitForData(ResponseImpl.java:76)上等待&lt; 0x272d5c18&gt;(weblogic.rjvm.ResponseImpl) - 已锁定&lt; 0x272d5c18&gt;(一个weblogic.rjvm.ResponseImpl)“ 第二个文件包含批量的代码,所以我需要计算第二个文件中第一个文件中的代码出现次数 输出=第一个文件中的代码出现在第二个文件中的次数以及行号(如果可能)。

1 个答案:

答案 0 :(得分:0)

你可以简单地grep内容,可能会有重复的条目,所以最后只需将输出传递给sort -usort | uniq

像:

while read -r line;do  echo -n $(grep -c $line /home/ashish/first.csv); echo "  $line";done <"$file" | sort -u

grep -c将计算出现次数 sort -u将对输出进行唯一排序