gpt4 book ai didi

linux - 如何在 bash 中正确打印读取的行

转载 作者:太空宇宙 更新时间:2023-11-04 09:34:40 24 4
gpt4 key购买 nike

尝试遍历纯文本文件时出现奇怪的行为:

#!/bin/bash
sed -n "5,5p" test.tmp
while read linea in
do
echo $linea
done < test.tmp

问题是,从第一个 sed 开始,我得到了我期望的结果,但是从 while 循环中,我没有:

./test.sh 
(5) Sorgo DICOTILEDONEAS 1,5-2 l/ha 15
(1)
(2)
(3)
(4)
(5)
(6)

我附上这两个文件是为了帮助澄清这里发生的事情:

提前致谢

最佳答案

我会做什么:

#!/bin/bash

while IFS= read -r linea; do
printf '%s\n' "$linea"
done < <(sed -n "5,5p" test.tmp)

< <( )是进程替换,检查
http://mywiki.wooledge.org/ProcessSubstitution
http://wiki.bash-hackers.org/syntax/expansion/proc_subst


“双引号”每个包含空格/元字符和每个扩展的文字:"$var" , "$(command "$var")" , "${array[@]}" , "a & b" .使用 'single quotes'用于代码或文字 $'s: 'Costs $5 US' , ssh host 'echo "$HOSTNAME"' .见
http://mywiki.wooledge.org/Quotes
http://mywiki.wooledge.org/Arguments
http://wiki.bash-hackers.org/syntax/words

关于linux - 如何在 bash 中正确打印读取的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27927813/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com