我有一列B
,my.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 列,并且引号字符串中没有需要忽略的逗号。