sh脚本 搜索文件名称不是以.csv结尾的文件,并切将这些文件删除.csv后面的内容
时间: 2024-03-05 17:48:44 浏览: 34
可以使用`find`和`sed`命令来实现此需求,具体命令如下:
```shell
# 搜索文件名称不是以.csv结尾的文件,并将这些文件删除.csv后的内容
find /path/to/search -type f ! -name '*.csv' -exec sh -c 'echo {} | sed "s/\..*$/./" | xargs -I{} mv {} {}csv' \;
# 删除.csv后的内容
find /path/to/search -type f -name '*.csv' -exec sh -c 'echo {} | sed "s/\.csv$//" | xargs -I{} mv {}.csv {}' \;
```
其中,`/path/to/search`为要搜索的目录路径。第一条命令会搜索所有文件名称不是以`.csv`结尾的文件,并将这些文件的后缀名修改为`.csv`,实现删除`.csv`后的内容。第二条命令则会删除所有`.csv`文件的后缀名,实现删除`.csv`后的内容。
需要注意的是,上述命令会将所有匹配的文件进行修改,因此在执行前应该确保没有误操作的风险。建议先备份相关文件,再执行上述命令。
相关问题
sh脚本 搜索文件名称中有.csv的文件。将这些文件截取.csv前的名称并保留.csv
可以使用以下的shell命令来实现:
```
find . -name "*.csv" -type f | sed 's/.*\///; s/\(.*\)\..*/\1.csv/'
```
这个命令会在当前目录及其子目录中查找所有以.csv结尾的文件,并将它们的文件名截取出来,保留.csv后缀。具体的解释如下:
1. `find . -name "*.csv" -type f`:使用find命令查找所有以.csv结尾的文件(不包括目录)。
2. `sed 's/.*\///; s/\(.*\)\..*/\1.csv/'`:使用sed命令对每个找到的文件名进行处理。
- `s/.*\///`:将文件路径去掉,只保留文件名。
- `s/\(.*\)\..*/\1.csv/`:将文件名中除了.csv之外的部分去掉,只保留.csv后缀。
sh脚本 判断名字是否以.csv结尾
在sh脚本中,可以使用字符串操作符和正则表达式来判断文件名是否以.csv结尾。以下是两种方法:
方法一:使用字符串操作符
```
filename="example.csv"
if [ ${filename##*.} = "csv" ]
then
echo "The file ends with .csv"
else
echo "The file does not end with .csv"
fi
```
在上面的示例中,`${filename##*.}`表示截取`$filename`变量中最后一个点号后面的字符串,即`.csv`,然后与`csv`进行比较,如果相等则输出文件以`.csv`结尾,否则输出文件不以`.csv`结尾。
方法二:使用正则表达式
```
filename="example.csv"
if [[ $filename =~ \.csv$ ]]
then
echo "The file ends with .csv"
else
echo "The file does not end with .csv"
fi
```
在上面的示例中,使用`=~`运算符将`$filename`变量与正则表达式`\csv$`进行匹配,`\csv$`表示匹配以`.csv`结尾的字符串,如果匹配成功则输出文件以`.csv`结尾,否则输出文件不以`.csv`结尾。注意,使用正则表达式时需要将正则表达式用双引号括起来。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)