linux - 更改目录中具有 csv 扩展名的文件名

标签 linux bash shell csv

我想将扩展名为 csv 的文件名更改为 test.txt。该文件位于 /Users/xx/xx 中。 问题是,文件的名称每次都不同(例如:part-r-00000-865affea-3ead-445e-ad3e-8703a8d79026.csv)并且不可预测。但是,扩展名始终是 csv,位置也是不变的。
值得一提的是,每次文件夹中唯一存在的文件是提到的 csv 文件,因此文件夹中只有一个文件,每次名称都不同。
其实我需要改变 part-r-00000-865affea-3ead-445e-ad3e-xxxx.csv(名称总是会变)到test.txt

你能帮帮我吗?

最佳答案

您可以在不知道文件全名的情况下使用通配符来定位文件。

考虑到您知道文件的目录及其扩展名,并且它是该目录中唯一具有此扩展名的文件,您可以简单地使用此 mv :

mv /Users/xx/xx/*.csv /Users/xx/xx/test.txt

这会将 /Users/xx/xx/ 中的每个 .csv 文件(在您的情况下,您的单个 CSV 文件)重命名为 /Users/xx/xx/test.txt.

如果有多个 .csv 文件,那显然会成为一个问题,因为每个文件都会覆盖前一个文件。如果它可能成为问题,您应该检查与此 glob 匹配的文件数,如果它大于 1 则错误退出,或者使用只对单个文件起作用的命令。

关于linux - 更改目录中具有 csv 扩展名的文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46526037/

相关文章:

linux - 检索 tasklet 的 pid

linux - 如何解析 netstat 命令以便从中获取进程名称和 PID?

linux - 遍历 ls 输出不会在 bash 中发生

python - 如何一步退出并运行Python IDLE shell

linux - 如何使用fuse挂载远程计算机中的目录?

c - 为什么在编译驱动程序时出现这些 'undefined' 警告?

bash - 8 位/颜色 RGB 和 8 位颜色图之间的区别

php - Linux bash脚本模拟回车

linux - 在 Linux shell 脚本中通过 SFTP 的 ls 命令错误

python - 在 python/bash/perl 脚本中执行和读取二进制文件的输出