如何编写一个计算文件中评论数量的Unix脚本?

时间:2016-02-15 18:26:38

标签: bash file unix

我有一些文件,每个文件都包含酒店的评论,我想写一个脚本来计算每个文件的评论数量。一个文件名的示例是hotel_73757。每个文件中的文本布局如下:

<Overall Rating>3.5
<Avg. Price>$260
<URL>http://www.tripadvisor.com/ShowUserReviews-g31310-d73757-r23009196-Wyndham_Phoenix-Phoenix_Arizona.html

<Author>TexasSharvi
<Content>the new updo is ... it's great! 
<Date>Dec 26, 2008
<No. Reader>-1
<No. Helpful>-1
<Overall>4
<Value>4
<Rooms>4
<Location>4
<Cleanliness>5
<Check in / front desk>5
<Service>-1
<Business service>4

<Author>ChrisLongo
<Content>Just Dirty... Will never stay at any Wyndham hotel again. 
<Date>Dec 24, 2008
<No. Reader>1
<No. Helpful>1
<Overall>1
<Value>1
<Rooms>1
<Location>1
<Cleanliness>1
<Check in / front desk>1
<Service>1
<Business service>-1

然后在每次审核之间重复一行,每个评论都有相同的字段。我在考虑检查每个文件中出现“作者”的次数是否可行?提前致谢

2 个答案:

答案 0 :(得分:1)

只需使用

grep -c "Author" yourFile

如果你真的想制作一个这样的剧本:

#!/bin/bash
################################################################################
# countreviews.sh
# Counts the number of times the word "<Author>" appears in the specified file.
################################################################################
grep -c "^<Author>" "$1"

使用以下内容使其可执行:

chmod +x countreviews.sh

运行它:

./countreviews.sh file

./countreviews.sh "file with space in name"

答案 1 :(得分:0)

您可以使用grepwc来获取包含“作者”一词的行数出现在文件中:

grep Author fileName | wc -l

grep将仅过滤作者行,wc -l将对其进行计数