从命令行引用 .csv 列中的单元格

从命令行引用 .csv 列中的单元格

我有一列Bmy.csv其中每个单元格引用目录中文档的文件名source_directory/

我想抓住每一个名称,以便我可以将它们用作其他 shell 命令的参数(如cp)。

最好将list.txt以下内容替换为 B 列的内容my.csv

cp $(<list.txt) target_directory

答案1

这个怎么样:

for i in `awk -F, '{print $2}' my.csv`; do cp "$i" target_directory; done

awk 命令是关键;-F 表示使用逗号作为字段分隔符,然后它可以打印出第二个字段。

跳过第一行:

for i in `awk -F, 'NR==1{next} {print $2}' my.csv`; do cp "$i" target_directory; done

答案2

如果您知道列号,请尝试:

cut -d, -f2 my.csv | {while read filename; do cp "$filename" target_dir/ ; done}

假设您想要第 2 列,并且引号字符串中没有需要忽略的逗号。

相关内容