使用 Bash 脚本创建多个工作文件
Creating Multiple Workfile using Bash Script
我正在尝试创建多个工作文件
源 csv 文件
**Filename,SchemaName,TableName
Shelf,category,books
Door,Category,wood**
预期输出
each Filename from column 1
Shelfy.wrk
\`File content Shelf.wrk
Your table is category.books\`
Door.wrk
\`File content Door.wrk
Your table is category.wood\`
我尝试创建类似
的东西
sed 's/,/\n/g' file | while read fileName; do touch "$fileName".wrk; done
但不确定如何按表格逐行填充内容以分隔文件
正如user1934428提到的,根本不需要使用sed,而是awk。
awk '(NR!=1)' source.csv | awk -F, '{fName=".wrk";cat=;tbl=; print fName"\nFile content "fName"\nYour table is "cat"."tbl}'
首先让我们跳过 awk '(NR!=1)' source.csv
的第一行
然后指示 awk 使用 -F,
作为字段分隔符(如 IFS= 那样)
将每个列值分配给一个变量。对于文件扩展名 .wrk,附加:fName=".wrk"
。对于其他两列:cat=;tbl=;
最后你只打印字符串
print fName"\nFile content "fName"\nYour table is "cat"."tbl
我正在尝试创建多个工作文件
源 csv 文件
**Filename,SchemaName,TableName
Shelf,category,books
Door,Category,wood**
预期输出
each Filename from column 1
Shelfy.wrk
\`File content Shelf.wrk
Your table is category.books\`
Door.wrk
\`File content Door.wrk
Your table is category.wood\`
我尝试创建类似
的东西sed 's/,/\n/g' file | while read fileName; do touch "$fileName".wrk; done
但不确定如何按表格逐行填充内容以分隔文件
正如user1934428提到的,根本不需要使用sed,而是awk。
awk '(NR!=1)' source.csv | awk -F, '{fName=".wrk";cat=;tbl=; print fName"\nFile content "fName"\nYour table is "cat"."tbl}'
首先让我们跳过 awk '(NR!=1)' source.csv
的第一行
然后指示 awk 使用 -F,
作为字段分隔符(如 IFS= 那样)
将每个列值分配给一个变量。对于文件扩展名 .wrk,附加:fName=".wrk"
。对于其他两列:cat=;tbl=;
最后你只打印字符串
print fName"\nFile content "fName"\nYour table is "cat"."tbl