用n个空格替换模式

时间:2019-07-10 08:55:28

标签: shell unix scripting

我是Shell脚本的新手,感谢与以下问题有关的任何帮助。我尝试使用 sed awk ,但是找不到解决方案。

问题:我有一个固定宽度的文件,该文件的数量字段需要用空格/任何特殊字符(例如$)替换,并且记录长度必须保持。数量字段的长度可以变化。

例如如果 sample_file.txt 记录长度为10 ,并且此文件中有两个数量字段,分别从2和6开始,长度为3和5,如下所示:

  

a234b67890

它必须修改为:

  

a $$$ b $$$$$

这是针对unix服务器的。

编辑:

此外,记录在其他位置也可以包含数字字符,这些数字字符不应更新。因此,考虑前面的示例,更新后的输入为:

  

a234b678901234567890

新的输出应该是:

  

a $$$ b $$$$$ 1234567890

1 个答案:

答案 0 :(得分:0)

尝试使用

inp=a234b67890
echo $inp | sed 's/[0-9]/$/g'
# gives a$$$b$$$$$

唯一的要求是输入必须始终为 record_length ,因为sed会用特殊字符替换数字。

希望这会有所帮助。