gpt4 book ai didi

Bash 循环,打印当前迭代?

转载 作者:行者123 更新时间:2023-11-29 08:44:51 25 4
gpt4 key购买 nike

假设你有一个简单的循环

while read line
do
printf "${line#*//}\n"
done < text.txt

是否有一种优雅的方式来打印当前迭代的输出?有点像

0 The1 quick2 brown3 fox

我希望避免设置变量并在每次循环时递增它。

最佳答案

为此,您需要在每次迭代时增加一个计数器(就像您试图避免的那样)。

count=0
while read -r line; do
printf '%d %s\n' "$count" "${line*//}"
(( count++ ))
done < test.txt

编辑:经过深思熟虑,如果你有 bash 版本 4 或更高版本,你可以在没有计数器的情况下做到这一点:

mapfile -t arr < test.txt
for i in "${!arr[@]}"; do
printf '%d %s' "$i" "${arr[i]}"
done

内置的 mapfile 将文件的全部内容读入数组。然后您可以遍历数组的索引,这将是行号并访问该元素。

关于Bash 循环,打印当前迭代?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10942825/

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