gpt4 book ai didi

linux - 解释 shell 脚本代码 "for loop"

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

有人能给我解释一下这个循环是什么吗?

for file in `ls *SC*`; do 
for content in `cat $file `; do
scid=`echo $file|awk -F'.' '{print $1}'`
printf "%-10s%s\n" $scid $content
done
done > text1

最佳答案

在此循环中,编写的 shell 代码很糟糕(性能、奇怪文件名后的错误)。
外循环:

for file in `ls *SC*`; do 
done > text1

尝试查找名称中包含 SC 的所有文件,对其执行某些操作,并将输出写入 text1。更好的是:for file in *SC*;做

内循环:

  for content in `cat $file `; do
done

对文件中的每个单词执行一些操作。

scid=`echo $file|awk -F'.' '{print $1}'`

该行属于内循环之外。它从第一个点开始截断(删除文件名中带 1 个点的扩展名)。您可以使用cut或更快的${file%.*}

printf "%-10s%s\n" $scid $content

打印截止文件名(最少 10 个位置:附加空格)和第一个单词,当 scid 或内容包含特殊字符时,两者都可能失败(更好的 printf "%-10s%s\n""$scid""$content")。

关于linux - 解释 shell 脚本代码 "for loop",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34374596/

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