You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Shell脚本中wc -c输出插入字符串时出现多余空格问题

问题解决:Shell脚本输出多余空格修复

问题根源

  1. wc -c的默认输出会自带前导空格(用于数字对齐排版),直接把结果赋值给变量后,这些空格会被带到最终输出里。
  2. 脚本中emptyline那一行存在语法错误——变量赋值和echo命令在同一行没有正确分隔,会导致执行异常。

修复后的脚本

#!/bin/bash
# 提取wc输出的纯数字,剔除前导空格
char=$(wc -c < "$1" | awk '{print $1}')
echo "This file has $char characters in it."

# 处理不含换行符的字符数,同样剔除空格
nolines=$(tr -d "\n" < "$1" | wc -c | awk '{print $1}')
echo "This file has $nolines characters not counting the new line."

# 修复语法错误,添加换行分隔命令,同时提取纯数字
emptyline=$(grep -cv '\S' "$1" | awk '{print $1}')
echo "This file has $emptyline empty lines."

# 统计字母字符,剔除wc输出的空格
# 注:原脚本里写的是"alphanumeric characters"(字母数字),但实际只统计了字母,这里同步修正描述
alphachar=$(tr -cd '[:alpha:]' < "$1" | wc -c | awk '{print $1}')
echo "This file has $alphachar alphabetic characters."

额外优化建议

  • 删掉无用的cat命令:比如把cat $1 | wc -c改成wc -c < "$1",更高效且避免文件名含空格时出错。
  • 变量引用加上双引号"$1",兼容带空格的文件名场景。

测试效果

用你的example_file执行修复后的脚本,输出将不再有多余空格,格式完全符合预期。

内容的提问来源于stack exchange,提问作者justin8p

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 03:15:50