ls在目录中的文件列表

Pab*_*blo 1 unix linux shell ls

我有一个C代码库,都位于同一目录中.我想找到所有具有相同名称的代码文件的头文件.

现在,我有以下命令:

ls *.h | sed s/.h/.c/
Run Code Online (Sandbox Code Playgroud)

这将返回我要搜索的文件名"列表".如何将此列表传递给另一个命令,以便我可以看到哪些头文件具有共享相同名称的代码文件?

Gur*_*uru 6

没有任何外部命令:

$ for i in *.h
> do
>   [ -f  ${i/.h/.c} ] && echo $i
> done
Run Code Online (Sandbox Code Playgroud)

第一行循环遍历每个文件.

第三行是测试构造.在-f以标志test(又名man [)检查文件是否存在.如果是,则返回0(在shell中被认为是真的).在&&只有工作,如果下面的命令,如果上一行成功返回.

$ {i/.h/.c}是一个就地的shell内正则表达式替换,因此测试的文件是.h的相应.c.

  • 啊,那个提供不是被要求的东西的那一刻,但是需要什么! (2认同)