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

咨询:如何通过Bash脚本提取每行的第三个字符?

提取每行第三个字符的脚本修正

你的脚本目前能执行cat部分输出内容,但无法正确提取每行的第三个字符,原脚本如下:

#!/bin/bash
cat << EFO
Hello 
World 
How are you
EFO
&&
while read hello.sh 
 do  
  echo ${hello.sh} | cut -c3
 done 

期望输出:

l
r
w

问题分析

  1. bash变量名仅支持字母、数字和下划线,hello.sh包含点号,属于非法变量名
  2. ${hello.sh}会被解析为变量hello拼接字符串.sh,并非正确的变量引用;且循环中直接用该写法会在脚本初始化时就展开,无法读取每次循环的输入内容
  3. cat的输出没有传递给while循环,&&只是连接两个独立命令,循环没有获取到需要处理的输入流

修正后的脚本

循环写法

#!/bin/bash
cat << EFO
Hello 
World 
How are you
EFO | while read line
do  
  echo "$line" | cut -c3
done

更简洁的直接处理写法

无需循环,直接用管道将cat输出传给cut处理:

#!/bin/bash
cat << EFO
Hello 
World 
How are you
EFO | cut -c3

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 13:26:14