【发布时间】:2019-06-22 11:40:49
【问题描述】:
我有一个用 awk 拆分的大文件,使用最后一列作为新文件的名称,但其中一列包含“/”,这会导致无法打开错误。
我尝试过创建一个函数来转换文件的名称,但是 awk 在我运行它时不使用它,可能是部分错误:
tried_func() {
echo $1 | tr "/" "_"
}
awk -F ',' 'NR>1 {fname="a_map/" tried_func $NF".csv"; print >> fname;
close(fname)}' large_file.csv
大文件.csv
A, row, I don't, need
plenty, with, columns, good_name
alot, off, them, another_good_name
more, more, more, bad/name
预期资源:
文件列表 i a_map:
- good_name.csv
- another_good_name.csv
- bad_name.csv
实际资源:
awk: can't open file a_map/bad/name.csv
不需要成为一个函数,如果我可以跳过 awk 中的“/”,那也是很棒的。
【问题讨论】:
-
顺便说一句,你的意思是
echo "$1"。另见stackoverflow.com/questions/10067266/…