在文件列表中查找正则表达式

时间:2013-02-15 15:01:12

标签: linux perl sed grep csh

我在目录中有几个头文件,格式为imageN.hd,其中N是某个整数。这些头文件中只有一个包含文本“trans”。我想要做的是使用csh查找哪个图像包含此表达式(我需要使用csh用于此目的 - 尽管我可以调用sed或perl one-liners)并显示相应的图像。 show iN

这是我最初的简单方法,但不起作用。

#find number of header files in directory
set n_images = `ls | grep 'image[0-9]*.hd' | wc -l`
foreach N(`seq 1 n_images`)
if (`more image$N{.hd} | grep -i 'trans`) then
show i$N
sc c image   #this command uses an alias to set the displayed image as current within the script
endif
end

我不确定上述命令有什么问题,但它没有返回正确的图像编号。

此外,我确信有更优雅的一线perl或sed解决方案,但我对两者都不太熟悉

1 个答案:

答案 0 :(得分:2)

show `grep -l trans image[0-9]*.hd | sed 's/image/i/`