如何按位置替换文件每行中的n个字符

时间:2013-03-06 08:16:56

标签: position character line aix substitution

我必须匿名文件中没有分隔符的字段。

就我而言,偶然的是,那些人是一个接一个的。

例如:

1234LASTNAME1¤¤¤¤¤¤¤¤¤¤¤FIRSTNAME1¤¤¤¤¤¤¤¤¤¤2013-01-01 2345LASTNAME2¤¤¤¤¤¤¤¤¤¤¤FIRSTNAME2¤¤¤¤¤¤¤¤¤¤2013-01-02 3456LASTNAME3¤¤¤¤¤¤¤¤¤¤¤FIRSTNAME3¤¤¤¤¤¤¤¤¤¤2013-02-01 4567LASTNAME1¤¤¤¤¤¤¤¤¤¤¤FIRSTNAME2¤¤¤¤¤¤¤¤¤¤2013-01-01

所以,我必须用字符“X”替换字符5到44才能得到结果: 1234XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX2013-01-01 2345XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX2013-01-02 3456XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX2013-02-01 4567XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX2013-01-01

使用awk,sed,perl ...... AIX版本6的任何工作。

由于

1 个答案:

答案 0 :(得分:0)

不是很优雅但是:

sed -e 's/^\(....\)........................................\(..........\)/\1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\2/' file

其中"文件"是输入文件的路径。