【发布时间】:2016-11-21 01:26:23
【问题描述】:
我正在尝试处理一些文件,并且我想将这些文件转换为 .csv 文件,所以我需要用逗号(',')替换一些特定的字符(在我的例子中是空格)。 我相信这可以通过 sed 或 awk 来完成,但是我没有编写正确的 sed 命令。
例如,输入文件如下所示(例如只有两行)
112 322432 434543 4555 3223
adg gdasgg dagdag gdag gdsg
...
请注意,输入文件中的数据不一定用一个空格分隔,但可以保证输入文件对替换字符有效。 我需要替换每行中第 3、10、17、25 列位置的每个字符。 对应的输出文件应该是这样的
112,322432,434543, 4555,3223
adg,gdasgg,dagdag, gdag,gdsg
...
顺便说一句,是否可以编写一个 sed 脚本(而不是硬代码),我们可以定义一个数组,其中包含我们需要用逗号替换空格的位置。
====================
我的错,替换连续空格不适用于我的情况。
abcde abcde abcde abcde abcde
abcde abcde de bcde
以上几行显示了我面临的问题,一些数据字段可能为空但不能忽略。幸运的是,输入文件保证了所有数据字段都根据项目文档放置在正确的位置(每个字段的长度都是给定的,并且它们用一个空格分隔,尽管在输入文件中可能会因为所需长度之间的差异而存在连续的空格文档和实际数据长度)。
【问题讨论】: