我有 100 个 1 行 CSV 文件。这些文件当前标记为 AAA.txt、AAB.txt、ABB.txt(在我使用split -l 1它们之后)。每个文件中的第一个字段是我想要重命名文件的内容,因此它将是第一个值,而不是 AAA、AAB 和 ABB。
输入 CSV(文件名 AAA.txt)
1234ABC, stuff, stuff
所需的输出(文件名 1234ABC.csv)
1234ABC, stuff, stuff
我不想编辑 CSV 本身的内容,只需更改文件名
我有 100 个 1 行 CSV 文件。这些文件当前标记为 AAA.txt、AAB.txt、ABB.txt(在我使用split -l 1它们之后)。每个文件中的第一个字段是我想要重命名文件的内容,因此它将是第一个值,而不是 AAA、AAB 和 ABB。
输入 CSV(文件名 AAA.txt)
1234ABC, stuff, stuff
所需的输出(文件名 1234ABC.csv)
1234ABC, stuff, stuff
我不想编辑 CSV 本身的内容,只需更改文件名
在拆分之前从您的原始文件开始
$ awk -F, '{print > ($1".csv")}' originalFile.csv
一口气完成所有工作。
像这样的东西应该工作:
for f in ./* ; do new_name=$(head -1 $f | cut -d, -f1); cp $f dir/$new_name
将它们移动到新目录以防万一出现问题,或者您需要原始文件名。
在终端中,更改目录,例如cd /path/to/directory文件在其中,然后使用以下复合命令:
for f in *.txt; do echo mv -n "$f" "$(awk -F, '{print $1}' "$f").cvs"; done
注意:有一个内涵echo 命令供您测试,它只会打印出mv 命令,让您看到它是您想要的结果。然后,您可以再次运行它,仅从复合命令中删除echo以通过命令mv 实际重命名文件。
这会将整个输入文件存储到输入文件colum1.csv中。
awk -F, '{print $0 > $1".csv" }' aaa.txt