我在终端文件夹中有一个目录。我正在使用 MobaXterm。该目录中有大量文件。文件名很长并且包含一些非法字符。示例文件名是“秘书长 2015 年后发展议程高级别小组的三位联合主席(印度尼西亚、利比里亚、英国) - Media Stakeout-1861343067001.m4a”。我使用以下命令行将文件名写入 csv 文件,到目前为止它一直有效。
dir$ find . -type f > names.csv
但这一次,文件名不再是一列,而是分为几列。
我只想在 A 列中输入整个名称。我想写入原始文件名,包括逗号。相同的命令能够为我之前的数据集编写带有逗号的文件名,唯一的区别是这些文件名比这个短。
如何修复它?
答案1
在 Linux 上,GNU find 有一个-printf
选项可以打印给定格式的文件名;要导入到 CSV,您可以用双引号将文件名括起来,例如:
find . -type f -printf '"%p"\n'
答案2
答案3
CSV 有不同的风格,但使用 sed 的 RFC 4180 兼容解决方案:
find . -type f | sed 's/"/""/g;s/\(.\+\)/"\1"/'
"
这将替换with的实例""
并用双引号封装非空行。