我有一个包含几个文件的目录。例如:
File1.bam
File2.bam
File3.bam
我想创建一个.csv文件,该文件包含2列并包含一个标题:
名称,路径
File1,/ Path / To / File1.bam
File2,/ Path / To / File2.bam
File3,/ Path / To / File3.bam
我已经设法在单独的步骤中组合了一种方法,但是它涉及到创建带有路径的csv,添加文件名,然后再次添加标题。我想在1步中同时添加文件名和路径,这样就不可能链接不正确的文件名和路径。
如果有问题,我正在尝试在批处理作业(SLURM)中运行的脚本中执行此操作,并且输出CSV将在后续工作流步骤中使用。
find ~/Desktop/test -iname '*.csv' -type f >bamlist1.csv
awk '{print FILENAME (NF?",":"") $0}' *.csv > test.csv
{ echo 'Name, Path'; cat bamlist.csv; } > bamdata.csv
答案 0 :(得分:3)
未经测试,但应该接近:
find ~/Desktop/test -name '*.bam' -type f |
awk '
BEGIN { OFS=","; print "Name", "Path" }
{ fname=$0; sub(".*/","",fname); print fname, $0 }
' > bamdata.csv
与您的原始脚本一样,以上假设您的文件/目录名称均不包含换行符或逗号。
如果您拥有GNU,则可以执行以下操作:
{ echo "Name,Path"; find ~/Desktop/test -name '*.bam' -type f -printf '%f,%p\n' } > bamdata.csv