Awk 将单独的Bash grep放入列中?

Awk 将单独的Bash grep放入列中?,awk,Awk,从主目录(包含多个子目录)中,我想将cd放入以*bk结尾的所有目录中,并执行三项操作: $1 = ls *enp $2 = grep "Start time" *initial.rpt $3 = grep "Stop time" *ending.rpt 我希望输出与同一行中的所有3个组件一起组织: 1. Bill.enp 12:00 14:30 2. Barb.enp 15:00 15:30 3. Brad.enp 16:00 17:30 4. Buck.e

从主目录(包含多个子目录)中,我想将cd放入以*bk结尾的所有目录中,并执行三项操作:

$1 = ls *enp
$2 = grep "Start time" *initial.rpt
$3 = grep "Stop time" *ending.rpt
我希望输出与同一行中的所有3个组件一起组织:

1. Bill.enp    12:00    14:30
2. Barb.enp    15:00    15:30
3. Brad.enp    16:00    17:30
4. Buck.enp    18:00    19:00
5. Burt.enp    19:30    21:00

任何帮助都将不胜感激

使用您想要的
粘贴
命令值

如果这些文件在三个文件中:
粘贴out1 out2 out3

如果这些是在三个变量中:
pasteIff命令

ls *enp
grep "Start time" *initial.rpt
grep "Stop time" *ending.rpt
所有的行数都是相同的,并且行的顺序总是正确的,您可以使用以下脚本(感谢Etan Reisner最初提到的)

用于*.bk中的d;做
如果[-d$d];然后
cd$d

粘贴-d\\t如果您为我们提供输入文件格式,则可以使用单个awk脚本一次性完成此操作。请稍候。。。这是在
perl
脚本中完成的,您想要
awk
解决方案吗?不是一个
perl
one吗?显而易见的事情是在perl脚本hey Etan和其他脚本中执行它,也许作为一个sine awk命令会更好?具体来说,这就是我要尝试的:第一次搜索:ls-d*bk第二次搜索:grep“Start”*rep_1.rpt第三次搜索:grep“Stop”*rep_1.rpt我想从每个以*bk结尾的目录中提取最后2条信息,并将3组信息组织到columns@user3159380我想我不太明白。您正在尝试为每个目录获取3x3输出?具体内容是什么?你能(在OP中)显示一些顶级目录,目录中的一些示例文件名,以及单个目录的输出(或部分输出)吗?对不起,我解释得不太清楚,我在这方面还是很新的。在我的顶层目录中有几个子目录(一些属于同事,但所有标记为“bk”的目录都属于我)。我想进入每个子目录,在每个子目录的末尾加上“bk”,并在每个子目录中做3件事:1)列出以*enp结尾的文件名2)从以initial.rpt结尾的文件中删除grep“Start”和3)grep“Stop”“从以ending.rpt结尾的文件中。我还将更新OP。现在,就输出或格式而言,我希望每一条信息都放在一起,1)2)3)一起放在一行上,然后1)2)3)的结果放在下一行的下一个子目录上。我对perl做了一些修改,但总体上还是行得通的,谢谢!
for d in *.bk ; do
  if [ -d $d ] ; then
    cd $d
    paste -d\\t <(ls *enp) <(grep "Start time" *initial.rpt) <(grep "Stop time" *ending.rpt)
    cd -
 done