小编Gre*_*reg的帖子


分叉/多线程过程| 巴什

我想让我的代码的一部分更有效率.我正在考虑将它分成多个进程并让它们一次执行50/100次而不是一次.

例如(伪):

for line in file;
do 
foo;
foo2;
foo3;
done
Run Code Online (Sandbox Code Playgroud)

我想这个for循环运行多次.我知道这可以通过分叉来完成.它看起来像这样吗?

while(x <= 50)
parent(child pid)
{
   fork child()
}
child
{
   do 
   foo; foo2; foo3; 
   done
   return child_pid()
}
Run Code Online (Sandbox Code Playgroud)

或者我是否以错误的方式思考这个问题?

谢谢!

bash shell fork

47
推荐指数
5
解决办法
11万
查看次数

手动迭代文件的一行| 庆典

我可以用任何其他语言做到这一点,但是对于Bash,我看起来远远不够,无法找到答案.

我需要手动增加$line脚本.例:

for line in `cat file`
do
foo()
       foo_loop(condition)
{
 do_something_to_line($line) 
}
done
Run Code Online (Sandbox Code Playgroud)

如果你注意到,每次foo_loop迭代时都$line保持不变.我需要在$line那里迭代,并确保原始for循环只运行文件中的行数.

我已经考虑过使用不同的循环查找文件中的行数并在内部循环中迭代行变量foo().

有任何想法吗?

编辑:

很抱歉这么模糊.

开始了:

我试图让我的代码的一部分执行多次(并行执行)

Function foo() # Does something
for line in `cat $temp_file`;
foo($line)
Run Code Online (Sandbox Code Playgroud)

该代码工作正常,因为foo它只是接受行的值; 如果我想这样做:

Function foo() # Does something
for line in `cat $temp_file`;
while (some condition)
foo($line)
end
Run Code Online (Sandbox Code Playgroud)

$line将在整个while循环中等于相同的值.我需要它随while循环改变,然后在它返回时继续for.例:

line = Hi
foo{ echo "$line" }; 
for line in `cat file`; …
Run Code Online (Sandbox Code Playgroud)

iteration bash shell loops

8
推荐指数
2
解决办法
1万
查看次数

如何在Perl中从固定宽度格式中提取列?

我正在编写一个Perl脚本来运行并获取各种数据元素,例如:

1253592000
1253678400                 86400                 6183.000000
1253764800                 86400                 4486.000000 
1253851200  36.000000      86400                10669.000000
1253937600  0.000000       86400                 9126.000000
1254024000  0.000000       86400                 2930.000000
1254110400  0.000000       86400                 2895.000000
1254196800  0.000000                             8828.000000
Run Code Online (Sandbox Code Playgroud)

我可以抓住这个文本文件的每一行没问题.

我正在使用正则表达式来抓取每个字段.一旦我在变量中有一行,即$ line - 我怎样才能抓住每个字段并将它们放入自己的变量中,即使它们有不同的分隔符?

perl fixed-width

2
推荐指数
1
解决办法
7289
查看次数

标签 统计

bash ×3

shell ×3

fixed-width ×1

fork ×1

gnu-coreutils ×1

grep ×1

iteration ×1

loops ×1

perl ×1

sh ×1