如何将逗号分隔符列更改为固定宽度的空格?

如何将逗号分隔符列更改为固定宽度的空格?

重新格式化 SQL 插入数据:

('1', 'admin', '^/admin/$', null,'Admin Console', 0,'admin.dashboard.Admin', null),
('1-2',  'admin', '^/admin/aggregates/$', 1,'Host Aggregates', 0,'admin.aggregates.panel.Aggregates', null),
('1-2-1',  'admin', null, '1-2','Host Aggregates', 1,null, null),

更改为:

('1',     'admin', '^/admin/$',            null,  'Admin Console',   0, 'admin.dashboard.Admin',             null),
('1-2',   'admin', '^/admin/aggregates/$', 1,     'Host Aggregates', 0, 'admin.aggregates.panel.Aggregates', null),
('1-2-1', 'admin', null,                   '1-2', 'Host Aggregates', 1, null,                                null),

答案1

以下是另一种方法,它只读取 csv,并将其格式化为表格。它使用 powershell:

PS> import-csv myinput.csv | 格式表

这不会改变 CSV 文件本身。它只会为您提供一个可读的副本。如果您想将可读副本放入另一个文件中,请执行以下操作:

PS> 导入 csv myinput.csv | 格式表 > mycopy.txt

注意:真正的提示符不是 PS>。我只是为了节省空间才这样写的。

答案2

是否存在永远不会出现在您的数据中的 ASCII 字符?可能是@%~?如果是这样,请按如下方式使用该字符:

sed's/,*/,@/g'你的文件| 列 -s'@' -t

sed命令用字符分隔列@,删除列之间的空格(但保留逗号),如下所示:

('1',@'admin',@'^/admin/$',@null,@'Admin Console',@0,@'admin.dashboard.Admin',@null),@
('1-2',@'admin',@'^/admin/aggregates/$',@1,@'Host Aggregates',@0,@'admin.aggregates.panel.Aggregates',@null),@
('1-2-1',@'admin',@null,@'1-2',@'Host Aggregates',@1,@null,@null),@

然后,该column命令使用列@分隔符 ( -s'@') 分隔各列,并将数据格式化为表格 ( -t)。

相关内容