我有一个看起来像这样的文件树
03
├── 01
│ ├── File 1.csv
└── 02
├── File 2.csv
04
├── 01
│ ├── File 1.csv
└── 02
├── File 2.csv
05
├── 01
│ ├── File 1.csv
└── 02
├── File 2.csv
我的目标是将文件夹名称用作日期......例如03/01
,03/02
等等。
对于创建的每个日期,我想将其作为新列附加到每个相应的CSV中。
这是我迄今为止尝试过的事情。
for i in */*; do
na= echo "$i";
done | awk -F";" '{$(NF+1)=na OFS $(NF+1)}' */*/*.csv >> ../outer/output.csv
我尝试过使用awk,但我知道我遗漏了一些东西。
提前致谢。
答案 0 :(得分:3)
您不需要for
循环。 awk
有一个包含当前文件名的FILENAME
变量,您可以从中提取日期部分。
awk -F";" -v OFS=";" '{
split(FILENAME, path, "/");
$(NF+1) = path[1] "/" path[2];
print
}' */*/*.csv >> ../outer/output.csv
答案 1 :(得分:-2)
$ awk 'FNR==1 {sub("/[^/]+$","", FILENAME)}
{print $0 ";" FILENAME}' */*/*.csv >> ../outer/output.csv