手动迭代文件的一行|庆典
发布时间:2020-12-15 18:28:41 所属栏目:安全 来源:网络整理
导读:我可以用任何其他语言做到这一点,但是对于 Bash,我看起来远远不够,无法找到答案. 我需要在脚本中手动增加$line.例: for line in `cat file`dofoo() foo_loop(condition){ do_something_to_line($line) }done 如果你注意到,每次foo_loop迭代时,$line保持不变
我可以用任何其他语言做到这一点,但是对于
Bash,我看起来远远不够,无法找到答案.
我需要在脚本中手动增加$line.例: for line in `cat file` do foo() foo_loop(condition) { do_something_to_line($line) } done 如果你注意到,每次foo_loop迭代时,$line保持不变.我需要在那里迭代$line,并确保原始for循环只运行文件中的行数. 我已经考虑过使用不同的循环查找文件中的行数并在foo()的内部循环内迭代行变量. 有任何想法吗? 编辑: 很抱歉这么模糊. 开始了: 我试图让我的代码的一部分执行多次(并行执行) Function foo() # Does something for line in `cat $temp_file`; foo($line) 该代码工作得很好,因为foo只是接受了行的值;但如果我想这样做: Function foo() # Does something for line in `cat $temp_file`; while (some condition) foo($line) end $line将在整个while循环中等于相同的值.我需要用while循环进行更改,然后在返回for时继续.例: line = Hi foo{ echo "$line" }; for line in `cat file`; while ( number_of_processes_running -lt max_number_allowed) foo($line) end 如果文件的内容是 Hi n Bye n Yellow n Green n 示例程序的输出将是(如果允许的最大数量为3) Hi Hi Hi Bye Bye Bye Yellow Yellow Yellow Green Green Green. 我希望它在哪里 Hi Bye Yellow Green 我希望这更好.我正在尽力解释我的问题.
而不是使用for循环来读取文件,你应该像这样读取文件.
#!bin/bash while read line do do_something_to_line($line) done < "your.file" (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |