我有一个文件,里面有这些数据-
view:
schema1.view1:/some-path/view1.sql
schema2.view2:/some-path/view2.sql
tables:
schema1.table1:/some-path/table1.sql
schema2.table2:/some-path/table2.sql
end:
我必须读取文件并将内容存储在不同的变量中。
viewData=$(sed '/view/,/tables/!d;/tables/q' $file|sed '$d')
tableData=$(sed '/tables/,/end/!d;/end/q' $file|sed '$d')
回显$视图数据
view:
schema1.view1:/some-path/view1.sql
schema2.view2:/some-path/view2.sql
echo $表格数据
第一个
我需要在dataArray上使用for循环,以便在4个不同的变量中获取所有组件。
假设对于$viewData,循环应该能够像这样打印-
objType=view
schema=schema1
view=view1
fileLoc=some-path/view1.sql
objType=view
schema=schema2
view=view2
fileLoc=some-path/view2.sql
我试过sed和cut命令,但是不能正常工作。我只需要使用shell脚本就可以了。任何帮助都将不胜感激。谢谢!
1条答案
按热度按时间bfnvny8b1#
**备注:**如果您在输入中的
:
和/
之间添加一个空格字符,那么您将能够使用支持YAML的工具来可靠地解析它。给定示例输入,您可以使用此
awk
生成预期的块:第一个