可以同时截取.c 和.cpp的码
时间: 2023-12-24 17:04:42 浏览: 31
如果需要同时截取`.c`和`.cpp`的文件名,可以使用`basename`命令结合`sed`命令来实现。具体的命令如下:
```shell
$ basename /home/user/test/file.cpp | sed 's/\(.*\)\..*/\1/'
```
该命令中,先使用`basename`命令来截取绝对路径中的最后一层文件名`file.cpp`,然后通过`sed`命令来去掉文件名的后缀,只保留文件名`file`。其中,`sed`命令中的正则表达式`\(.*)\..*`表示匹配以`.`为结尾的字符串,并将`.`以及后面的内容去掉,只保留文件名部分。这样就可以同时截取`.c`和`.cpp`的文件名了。
相关问题
suffix如果为.c或者.cpp呢
如果需要截取的绝对路径最后一层文件名的后缀为`.c`或`.cpp`,可以通过在`basename`命令中指定`suffix`参数来实现。例如:
```shell
$ basename /home/user/test/file.c .c
file
```
这样就可以获取该路径最后一层文件名去掉后缀的结果为`file`。如果文件名后缀为`.cpp`,则可以将`.c`换成`.cpp`即可。
qt字符串截取 .mid
在Qt中,可以使用`.mid`函数来截取字符串。`.mid`函数可以从一个字符串中提取指定位置和长度的子字符串。
函数的语法如下:
```
QString str = "Hello, World!";
QString subStr = str.mid(startIndex, length);
```
其中,`startIndex`表示要截取的子字符串的起始位置,`length`表示要截取的子字符串的长度。
例如,如果我们想从字符串"Hello, World!"中截取"World"这个子字符串,可以使用以下代码:
```
QString str = "Hello, World!";
QString subStr = str.mid(7, 5);
```
在这个例子中,`startIndex`为7,表示从第8个字符开始截取;`length`为5,表示截取5个字符。最终得到的`subStr`为"World"。
需要注意的是,`startIndex`是从0开始计数的,即第一个字符的索引为0。