编写一个 Shell 脚本,可以在在shell上运行,首先从键盘输入一个文本文件路径作为参数,注意异常输入的问题,如果输入异常,输出英文提示,直到输入正确,然后统计输出该文本文件中行数、单词个数(中文个数和英文单词个数相加的总个数)
时间: 2024-04-15 10:29:19 浏览: 87
可以为您编写一个符合您要求的 Shell 脚本,请参考以下代码:
```shell
#!/bin/bash
# 提示用户输入文本文件路径,并进行异常输入处理
while true; do
read -p "请输入文本文件路径: " filepath
if [ -f "$filepath" ]; then
break
else
echo "文件不存在,请重新输入!"
fi
done
# 统计行数
line_count=$(wc -l < "$filepath")
# 统计单词个数(中文个数和英文单词个数相加)
word_count=$(cat "$filepath" | tr -d '\n' | sed 's/[[:punct:]]/ /g' | sed 's/[[:space:]]/ /g' | awk '{print NF}')
# 输出统计结果
echo "行数:$line_count"
echo "单词个数:$word_count"
```
将以上代码保存为一个后缀为 `.sh` 的文件,例如 `count.sh`。然后在终端中运行该脚本,按照提示输入文本文件路径即可获得统计结果。
请注意,该脚本假设输入的文本文件是普通文本文件,不包含特殊格式或编码。
相关问题
编写一个shell脚本,接受一个文本文件路径作为参数,统计输出该文本文件中行数和单词数
你可以尝试以下的shell脚本代码来实现统计文本文件的行数和单词数:
```bash
#!/bin/bash
# 检查参数是否为空
if [ -z "$1" ]; then
echo "请提供一个文本文件路径作为参数"
exit 1
fi
# 读取文件路径参数
file_path="$1"
# 检查文件是否存在
if [ ! -f "$file_path" ]; then
echo "文件不存在: $file_path"
exit 1
fi
# 统计行数
line_count=$(wc -l < "$file_path")
# 统计单词数
word_count=$(wc -w < "$file_path")
# 输出结果
echo "行数: $line_count"
echo "单词数: $word_count"
```
将以上代码保存为一个shell脚本文件(例如`count_stats.sh`),然后在终端中运行以下命令来执行脚本,并将要统计的文本文件路径作为参数传递给脚本:
```bash
bash count_stats.sh /path/to/text_file.txt
```
其中`/path/to/text_file.txt`是要统计的文本文件的路径。脚本将输出文本文件的行数和单词数。
.编写一个 Shell 脚本,接受一个文本文件路径作为参数,统计输出该文本文件中行数、单词数
你可以使用以下的shell脚本来接受一个文本文件路径作为参数,并统计该文本文件中的行数和单词数:
```shell
#!/bin/bash
file_path=$1
# 统计行数
line_count=$(wc -l < "$file_path")
# 统计单词数
word_count=$(wc -w < "$file_path")
echo "行数: $line_count"
echo "单词数: $word_count"
```
这个脚本首先将传递给脚本的第一个参数(即文本文件路径)保存到`file_path`变量中。然后,使用`wc -l`命令统计文件的行数,并将结果保存到`line_count`变量中。接着,使用`wc -w`命令统计文件的单词数,并将结果保存到`word_count`变量中。最后,使用`echo`命令输出行数和单词数。
你可以将这个脚本保存为一个.sh文件,然后在终端中运行该脚本并指定文本文件路径作为参数,脚本将输出该文本文件中的行数和单词数。例如,假设脚本名为`count.sh`,你可以运行以下命令:
```shell
bash count.sh /path/to/text_file.txt
```
其中`/path/to/text_file.txt`是你要统计的文本文件的实际路径。脚本会输出行数和单词数。