UNIX\LINUX:如何将目录文本添加到文件中的每一行?

UNIX\LINUX:如何将目录文本添加到文件中的每一行?,linux,unix,csh,Linux,Unix,Csh,UNIX\LINUX:如何将目录文本添加到文件中的每一行 注意:我只是使用shell(LINUX REDHAT EPIC的CMD工具)没有其他 您可以看到,我有许多日志文件(.txt.gz),我可以通过以下方式打开所有日志文件: foreach i (./*/*dumpfiles.txt.gz_*) > foreach? zcat $i > foreach? grep "-e" $i > foreach? END 这意味着我要在所有这些文件夹中查找文件dumpfiles.tx

UNIX\LINUX:如何将目录文本添加到文件中的每一行

注意:我只是使用shell(LINUX REDHAT EPIC的CMD工具)没有其他

您可以看到,我有许多日志文件(.txt.gz),我可以通过以下方式打开所有日志文件:

foreach i (./*/*dumpfiles.txt.gz_*)
> foreach? zcat $i
> foreach? grep "-e" $i
> foreach? END
这意味着我要在所有这些文件夹中查找文件dumpfiles.txt.gz_

输出结果如下所示:

0x4899252 move x -999
0x4899231 move y -0
0x4899222 find scribe
0x4899231 move x -999
等等

问题是我需要将目录设置为文件的每一行。。。 我可以通过命令pwd获取目录

我的问题是如何在文件的每一行添加目录名? 例如:

等等

我尝试使用$sed,但找不到解决方案…:(


谢谢…

这里有一个小perl脚本,可以满足您的要求(输入是文件名):

如果希望它仅位于当前目录,则需要在“.”之后的
查找
中添加
-maxdepth 1
标志

更新:

这也可以工作(没有脚本,只有一行shell):


这是什么shell?这不是sh语法。这是csh语法,可能是tcsh,因为continuation promptSirs,它只是一个使用unix cmd工具的命令…你有
zgrep
工具吗?它已经这样做了。
zgrep something*/*/filename
哦,是的,先生,我刚才用过它,它会根据grep条件打印行…先生在打印grep正在打印的行之后或之前添加一个目录如何?。我必须使用类似管道“|”的东西吗?:(我尝试了pwd | zgrep”(word)“$I但不起作用…:(
(directory) (per line of all files)
machine01   0x4899252 move x -999
machine01   0x4899231 move y -0
machine09   0x4899222 find scribe
machine09   0x4899231 move x -999
$file = shift;
$path = `pwd`;
chomp($path);
open(TRY, "< $file");
while ($line = <TRY>) { print ($path . $line);}
close(TRY);
find . -exec scriptname {} \;
perl -pi -e 's/^/$ENV{PWD} /g'