官术网_书友最值得收藏!

  • Bash Cookbook
  • Ron Brash Ganesh Naik
  • 265字
  • 2021-07-23 19:17:41

How it works...

We have already discussed several important aspects such as the power of the SED and AWK commands, and even CSVs, but we have not discussed the importance of being able to transform the format and structure of data. CSVs are a fundamental and very common format of data, but unfortunately, it isn't the best choice for some applications, so we may use XML or JSON. Here are two scripts (or rather one script and one tool) that can convert our original data into various formats:

  1. When executing data-csv-to-xml.sh, we notice several things: we utilize two source template files, which can be altered for flexibility, and then a large piped command that leverages sed and AWK. On input, we take each of the CSV values and build a <word lang="x">Y</word> XML element using the format template inside of word.tpl, where $0 is field one and $1 is field two. The script will produce a words.csv and output the following:
$ bash data-csv-to-xml.sh
<?xml version="1.0" encoding="UTF-8"?>
<words type="greeting">
<word lang="EN">"Hello"</word>
<word lang="FR">"Bonjour"</word>
</words>
  1. In the second script, we merely take words.xml as input into the command xml2json. The output will be in JSON format. Cool hey?
!#/bin/bash
{
"words": {
"type": "greeting",
"word": [
{
"lang": "EN",
"$t": "\"Hello\""
},
{
"lang": "FR",
"$t": "\"Bonjour\""
}
]
}
}
The differences and reasons between all three formats of data (CSV, XML, and JSON) is left as an exercise for the reader to discover. Another exercise to explore is performing data validation to ensure integrity and constraints on data. For example, XML can use XSD schemas to enforce data limits.
主站蜘蛛池模板: 剑阁县| 五大连池市| 涿鹿县| 宁安市| 武冈市| 勃利县| 怀化市| 阳信县| 石泉县| 荔浦县| 衡东县| 长宁县| 灵宝市| 福鼎市| 呼伦贝尔市| 东乌珠穆沁旗| 遂宁市| 滨州市| 泸溪县| 天等县| 日土县| 南丰县| 闽清县| 高平市| 延津县| 昌吉市| 通州市| 易门县| 凤山县| 松江区| 封丘县| 隆安县| 宜丰县| 胶南市| 富源县| 菏泽市| 宾阳县| 三台县| 博野县| 满洲里市| 英吉沙县|