如何用Bash脚本将字数、字符数等统计结果写入文本文件
解决方案
原有代码存在几处问题:
- shebang格式错误,正确写法为
#!/bin/bash - 直接调用
wc统计时会额外输出文件名,且结果仅打印到终端,没有写入目标文件 - 若先写入内容再统计,会把新增的统计行算入数值,导致统计结果不符合预期
调整后的完整代码如下:
#!/bin/bash # 此处修改为你要操作的目标文件路径 TARGET_FILE="file.txt" echo "start" # 打印文件原有内容,不需要可删除 cat "$TARGET_FILE" # 提前统计三类数值,必须在追加操作前执行 file_size=$(wc -c < "$TARGET_FILE") word_num=$(wc -w < "$TARGET_FILE") char_num=$(wc -m < "$TARGET_FILE") # 格式化后追加到文件末尾 echo "本文件大小:${file_size},单词数:${word_num},字符数:${char_num}。" >> "$TARGET_FILE" echo "end"
注意事项
- 追加操作使用
>>符号,不要误写为>,否则会覆盖文件原有内容 - 运行脚本前需要给脚本添加执行权限:
chmod +x 脚本名称.sh - 若目标文件路径包含空格,必须给变量
$TARGET_FILE包裹双引号,避免路径解析错误
内容的提问来源于stack exchange,提问作者Bugurah
相关产品推荐
相关产品推荐

