我需要使用不同的文件名运行重复命令以获取标题。但是,我需要运行每个文件。
dfits *.fit | grep MSBTITLE
有什么命令可以运行多个文件并显示所需的文件名和标题吗?
grep
不知道文件名,因此您只能看到匹配的行,但看不到它们最初来自哪个文件。在您的情况下,我将编写一个显式循环:
for file in *.fit
do
if titleline=$(dfits $file|grep MSBTITLE)
then
echo $file : $titleline
fi
done
由于dfits
已经在其输出中掩盖了文件名,因此我们将grep的输出存储到一个变量中,如果匹配,则将该行与文件名一起输出。