写一个shell脚本统计出一个文件中有多少个单词 并按照降序排列
时间: 2023-07-04 14:15:21 浏览: 194
可以通过以下 shell 脚本来实现统计文件中单词个数并按照降序排列的功能:
```shell
#!/bin/bash
# 统计文件中每个单词的出现次数
word_count=$(cat filename | tr -s ' ' '\n' | sort | uniq -c)
# 将单词出现次数按照降序排列
word_count_desc=$(echo "$word_count" | sort -rn)
# 输出结果
echo "$word_count_desc"
```
其中,`filename` 是要统计单词个数的文件名。该脚本会将文件中的每个单词按照出现次数统计,并将结果按照降序排列后输出。
具体实现方式是,首先使用 `cat` 命令将文件读入,然后使用 `tr` 命令将单词分隔符转换为换行符,并使用 `sort` 和 `uniq` 命令统计每个单词出现的次数。最后,使用 `sort` 命令将单词出现次数按照降序排列。
相关问题
shell脚本统计一个文件中单词的数量
在shell脚本中,你可以通过一些命令行工具来统计一个文本文件中单词的数量。这里是一个简单的步骤和示例:
1. 首先,你需要读取文件内容。可以使用`cat`或`tr -d '\r\n'`命令去除换行符,然后使用`grep -oE '\b\w+\b'`提取所有的单词(`\b`匹配单词边界,`\w+`匹配一个或多个字母数字字符)。
```bash
content=$(cat file.txt | tr -d '\r\n')
words=$(echo "$content" | grep -oE '\b\w+\b')
```
2. 然后,计算单词的数量。`wc -w`命令用于计算单词数。将提取到的单词赋值给它,即可得到结果:
```bash
word_count=$(echo "$words" | wc -w)
```
3. 最后,打印出单词总数:
```bash
echo "The file contains $word_count words."
```
完整的脚本可能看起来像这样:
```bash
#!/bin/bash
content=$(cat file.txt | tr -d '\r\n')
words=$(echo "$content" | grep -oE '\b\w+\b')
word_count=$(echo "$words" | wc -w)
echo "The file contains $word_count words."
```
运行这个脚本,就能看到文件中单词的具体数目了。
写一个shell脚本,循环创建10个2kb的文件并删除
你可以编写一个简单的Shell脚本来实现这个功能。下面是一个示例脚本,它会创建10个2KB大小的文件,并逐个删除:
```bash
#!/bin/bash
# 定义文件大小(这里为2KB)
FILE_SIZE=2048
# 循环次数
COUNT=10
# 创建文件并计数
for ((i = 1; i <= COUNT; i++)); do
# 文件名前缀
FILE_NAME="file_$i"
# 创建文件
touch -b ${FILE_NAME}.txt
echo "Created file $FILE_NAME.txt with size ${FILE_SIZE} bytes."
# 检查文件大小
if [ -s ${FILE_NAME}.txt ]; then
echo "File $FILE_NAME.txt has the expected size."
else
echo "Error: File $FILE_NAME.txt is not created properly."
break
fi
# 删除当前文件
rm ${FILE_NAME}.txt
echo "Deleted file $FILE_NAME.txt."
done
echo "Script completed."
阅读全文