使用grep、sed编写Tcl脚本

使用grep、sed编写Tcl脚本,sed,grep,Sed,Grep,我必须首先找到一个特定的字符串,然后我需要在该字符串中提取一个值,该值在每次运行后都会发生变化。我怎样才能做到这一点 Stage pro begin_time { size is 54mb and 3 sec } Stage pro1 begin_time {.....} 我有一个很大的文件。我必须特别查找begin\u time字符串,然后查找它的值并将其存储在某个地方。我怎样才能做到这一点。 我用grep尝试过,但我不知道如何在这里存储3的值。同样,我这里也有很多案例,我如何处理这种情况

我必须首先找到一个特定的字符串,然后我需要在该字符串中提取一个值,该值在每次运行后都会发生变化。我怎样才能做到这一点

Stage pro begin_time { size is 54mb and 3 sec }
Stage pro1 begin_time  {.....}
我有一个很大的文件。我必须特别查找
begin\u time
字符串,然后查找它的值并将其存储在某个地方。我怎样才能做到这一点。 我用
grep
尝试过,但我不知道如何在这里存储3的值。同样,我这里也有很多案例,我如何处理这种情况

cat aaa
Stage pro begin_time { size is 54mb and 3 sec }
Stage pro1 begin_time  {.....}


cat aaa  |awk '$3=="begin_time" {print $9}' |grep .
3
如果要存储它,请执行以下操作:

var=$(cat aaa  |awk '$3=="begin_time" {print $9}' |grep .)
echo $var
3
如果你想用3来映射pro

cat aaa   | awk '$3=="begin_time" {print $2,$9}' |grep .
pro 3

谢谢你的回复。我想将它存储为pro的值3,然后是pro1对应的其他值。第二,这里提到的时间是开始时间。我对每个stage pro、pro1都有相同的信息,但有一个结束时间。我还得提取结束时间。然后我必须计算经过的净时间,即开始时间和结束时间之间的时间

如果您想这样做,那么您需要将上述代码放入while read循环中。@anmol不将注释作为答案发布。如果您需要提供更多信息,请将其发布为评论和/或编辑您的问题。现在,我甚至不知道您是否在询问如何使用UNIX工具解析tcl脚本以修改该tcl脚本,或者如何从tcl调用UNIX工具来帮助解析其他文件或其他内容。目前还不清楚您试图做什么,但正确的解决方案不会涉及grep或sed或shell循环(请参阅)。您的问题旨在澄清您的需求,并包括几行简洁、可测试的示例输入和预期输出,以便我们能够帮助您。uuooc(和grep):
cat aaa | awk'$3==“begin_time”{print$9}grep.
将产生与更简单的
awk'$3==“begin_time”{print$9}aaa
完全相同的输出,你的方式更聪明!谢谢