我试图从数据文件中删除单引号之后的所有空格。不过,我并没有捕捉到下面的情况。sed没有替换所有的东西
输入
{'_id':' BE3523 ', 'time':' 18:20 ', 'number':' BE3523 ', 'destination':' Bordeaux ', 'status': ' Scheduled '}
sed命令我跑......
sed -i.bak 's/['\'' ]\{2\}/'\''/g' input.json
输出
{'_id':'BE3523','time':'18:20','number':'BE3523','destination':'Bordeaux','status':' Scheduled'}
注'_Scheduled
遗迹之间的空间,但每其他空间有已被删除。我必须再次运行sed命令来摆脱这个最后空间,下面的是
{'_id':'BE3523','time':'18:20','number':'BE3523','destination':'Bordeaux','status':'Scheduled'}
任何想法,我做错了,为什么这样一个空间始终保持?
','计划的'有3个字符的那个字符类,而不是2. – LukStorms
请注意,对结构化数据使用正则表达式通常是一个坏主意。大多数情况下最好解析它,然后创建适当的输出。 (例如,考虑\'在值内跳转的情况)例如: –
perl 5 perl:'perl -i.bak -pe's/[] +(?='\'')|(?<=' \'')[] + // g'input.json' – LukStorms