从 bash 脚本中文件的第二行运行循环

从 bash 脚本中文件的第二行运行循环

我想使用以下文件内容作为 for 循环脚本的输入。从第二行开始,我们有 id 将用于从数据库获取内容。

cat abc.txt 
id
27
27
27
27
23

答案1

这可以变得简单如下:

{ read -r; while read -r line; do echo "$line"; done; } < abc.txt

这里{的意思是对命令进行分组。使用read -r我们将跳过第一行!

答案2

sed您可以在 proc 之前对其进行过滤。

例如,cat abc.txt您可以sed 1d abc.txt删除第一行。

答案3

这有效 - 即使标题不在第一行或有空行:

awk '!/^(id| *)$/{print$0}' file | while read line; do
    something $line
done

while在这个例子中使用了,因为它通常比for.

这就是说 - 这是你的for循环:

for line in $(awk '!/^id$/{print$0}' file); do
    something $line
done

答案4

如果您的文件很大,不推荐

你可以这样使用:

 for i in $(sed -e '1d' abc.txt)
 do
   something
 done

相关内容