使用脚本将cobol部分转换为pl / sql,我正在努力将cobol注释转换为Oracle注释。
线条看起来像
if userdata.empty?
raise "Errors: userdata not available"
else
node.override[:user1] = userdata['user1']
node.override[:user2] = userdata['user2']
node.save
end
所以计划是解析文件中的每一行,如果第一个字符是星号,则添加一个双短划线 - 到行的开头。然而,星号是一个特殊的角色,我似乎无法得到bash来处理它。
想法?
编辑。 cobol的示例部分。
******************
带星号的那些行需要成为
************************
IDENTIFICATION DIVISION.
************************
PROGRAM-ID.
我用各种迭代替换了$ firstChar,但结果是“找不到命令”,因为bash仍在将星号作为命令而不是字符串字符读取。
--**********************
IDENTIFICATION DIVISION.
--**********************
答案 0 :(得分:1)
您必须使用[{
"ASIN": ["B00WA6ZL8S"],
"ParentASIN": ["B00WA6ZL8S"],
"VariationSummary": [{
"LowestPrice": [{
"Amount": ["9200"],"CurrencyCode": ["USD"], "FormattedPrice": ["$92.00"]
}],
"HighestPrice": [{
"Amount": ["13995"],
"CurrencyCode": ["USD"],
"FormattedPrice": ["$139.95"]
}]
}],
"Variations": [{
"TotalVariations": ["48"],
"TotalVariationPages": ["1"],
"VariationDimensions": [{
"VariationDimension": ["Size", "Color"]
}],
"Item": [{
"ASIN": ["B00RHLICFA"],
"ParentASIN": ["B00WA6ZL8S"],
"SmallImage": [{
"URL": ["http://ecx.images-amazon.com/images/I/41z-SPDeICL._SL75_.jpg"],
"Height": [{
"_": "35",
"$": {
"Units": "pixels"
}
}],
"Width": [{
"_": "75",
"$": {
"Units": "pixels"
}
}]
}],
make_sure_path_exists
第二个*是通配符,因此它会检查该行是否以星号开头。
编辑:如果您只是比较第一个字符,则可以删除第二个\
,该字符用于表示字符串的其余部分。
if [[ $line == \** ]]
then
echo "-- whatever"
fi
答案 1 :(得分:0)
使用sed
sed 's/^*/--*/g'
从*
开头替换--*
。有趣的是,即使第一个搜索的*
未被转义,这仍然有效。此外,g
是不必要的,因为由于^
,每行只有一个可能的匹配项。如下所述,正确的语法应为
sed 's/^\*/--*/'