首页 > 解决方案 > 有没有更好的方法在终端中运行重复命令?

问题描述

我需要使用不同的文件名运行重复命令来获取标题。但是,我需要运行每个文件。

dfits *.fit | grep MSBTITLE

有什么命令可以运行多个文件并显示我需要的文件名和标题吗?

标签: shellcommand

解决方案


grep不知道文件名,因此您只能看到匹配的行,但看不到它们最初来自哪个文件。在你的情况下,我会写一个明确的循环:

for file in *.fit
do
  if titleline=$(dfits $file|grep MSBTITLE)
  then
    echo $file : $titleline 
  fi
done

由于dfits已经在其输出中隐藏了文件名,我们将 grep 的输出存储到一个变量中,如果匹配,则将此行与文件名一起输出。


推荐阅读