shell判断每个文件名的后缀是否.c或者.cpp
时间: 2024-03-17 16:44:01 浏览: 366
您可以使用以下的shell脚本来判断一个目录下的每个文件名的后缀是否.c或者.cpp:
```bash
#!/bin/bash
for file in /path/to/directory/*; do
if [[ "$file" == *.c || "$file" == *.cpp ]]; then
echo "$file has a .c or .cpp extension."
fi
done
```
这个脚本将循环处理`/path/to/directory/`下的每个文件名,并检查它们是否以`.c`或`.cpp`结尾。如果是,它将打印出文件名和一个消息,指出该文件具有`.c`或`.cpp`扩展名。您可以替换echo语句,以执行您想要的任何操作。
相关问题
suffix如果为.c或者.cpp呢
如果需要截取的绝对路径最后一层文件名的后缀为`.c`或`.cpp`,可以通过在`basename`命令中指定`suffix`参数来实现。例如:
```shell
$ basename /home/user/test/file.c .c
file
```
这样就可以获取该路径最后一层文件名去掉后缀的结果为`file`。如果文件名后缀为`.cpp`,则可以将`.c`换成`.cpp`即可。
可以同时截取.c 和.cpp的码
如果需要同时截取`.c`和`.cpp`的文件名,可以使用`basename`命令结合`sed`命令来实现。具体的命令如下:
```shell
$ basename /home/user/test/file.cpp | sed 's/\(.*\)\..*/\1/'
```
该命令中,先使用`basename`命令来截取绝对路径中的最后一层文件名`file.cpp`,然后通过`sed`命令来去掉文件名的后缀,只保留文件名`file`。其中,`sed`命令中的正则表达式`\(.*)\..*`表示匹配以`.`为结尾的字符串,并将`.`以及后面的内容去掉,只保留文件名部分。这样就可以同时截取`.c`和`.cpp`的文件名了。
阅读全文
相关推荐
![cpp](https://img-home.csdnimg.cn/images/20250102104920.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![exe](https://img-home.csdnimg.cn/images/20241231044909.png)
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![txt](https://img-home.csdnimg.cn/images/20241231045021.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231044937.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)