本题我采用两种语言来实现,一种是shell脚本 一种是java
一、shell脚本
#!/bin/sh
file="log.txt"
str=`cat ${file}|head -n 1 |awk -F : '{print $1}'`
count=`cat ${file}|grep ^${str}|wc -l`
echo "${count}"
二、Java实现如下:
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
public class gettext {
private static final String PATH="C:\\log.txt";
private BufferedReader br=null;
private String temp="";
private int count=0;
private String firstChar=null;
public static void main(String[] args) {
new gettext().getText();
}
public void getText(){
try {
//读入文本的内容
br=new BufferedReader(new InputStreamReader(new FileInputStream(new File(PATH))));
String str="";
while((str=br.readLine())!=null){
temp=temp+str.substring(0, str.indexOf(":"))+"\n"; //得到冒号作为分隔符的前段所有内容
}
// System.out.println(temp);
String [] array=temp.split("\n"); //以\n(换行符)为分隔符,分割字符串得到数组
for(int i=0;i<array.length;i++){ //遍历数组
// System.out.println(array[i]);
firstChar=array[0];
if(firstChar.equals(array[i])){ //遍历数组与第一个字符进行比较
count++;
}
}
System.out.println(firstChar+":"+count);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally{
if(br!=null){
try {
br.close(); //关闭文件流
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}