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

如何在Bash中逐字符读取文件并包含空格?

Bash脚本逐字符读取文件(含空格解决方案)

原代码无法读取空格是因为read命令默认会忽略开头的空白字符,且未正确处理变量输出。以下是修正后的脚本:

while IFS= read -r -n1 c; do
  echo -n "$c"
done < "$1"

关键修改说明:

  • IFS=:清空内部字段分隔符,让read不再忽略空格、制表符等空白字符
  • -r:禁止解析反斜杠转义,确保读取文件中的原始字符
  • "$c":用双引号包裹变量,避免空格被Shell展开为空
  • echo -n:取消自动添加换行符,保证逐字符输出的行为和读取一致

如果需要完整读取包括换行符在内的所有字符,还可以用这种方式:

cat "$1" | while IFS= read -r -d '' -n1 c; do
  echo -n "$c"
done

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 04:15:48