当标题字段中有标点符号时,我正在努力将数据文件转换为 csv。
我有一个获取文件并处理它的 bash 脚本,它几乎可以工作。让我明白的是,当自由文本标题字段中有逗号时,它会创建额外的字段。
我尝试了一些 sed 示例来替换模式,但我没有让它们中的任何一个起作用。我想要做的是在两种模式之间工作,并将逗号替换为空或分号。
取这个字符串:
name:A100040,title:Oatmeal is better with raisins, dates, and sugar,current_balance:50000,
替换为:
name:A100040,title:Oatmeal is better with raisins dates and sugar,current_balance:50000,
我可能应该使用“title:”和“,current_”来表示我想要进行更改的块的开始和结束以避免这样的情况:
name:A100040,title:Re-title current periodicals, recent books,current_balance:50000,
到目前为止,我还没有得到匹配的替换。在这种情况下,我正在使用 !! 使变化明显:
teststring="name:A100040,title:Oatmeal is better with raisins, dates, and sugar,current_balance:50000,"
echo $teststring |sed '/title:/,/current_/s/,/!!/g'
name:A100040!!title:Oatmeal is better with raisins!! dates!! and sugar!!current_balance:50000!!
任何帮助表示赞赏。