我是Shell脚本的新手,感谢与以下问题有关的任何帮助。我尝试使用 sed 和 awk ,但是找不到解决方案。
问题:我有一个固定宽度的文件,该文件的数量字段需要用空格/任何特殊字符(例如$)替换,并且记录长度必须保持。数量字段的长度可以变化。
例如如果 sample_file.txt 的记录长度为10 ,并且此文件中有两个数量字段,分别从2和6开始,长度为3和5,如下所示:
a234b67890
它必须修改为:
a $$$ b $$$$$
这是针对unix服务器的。
编辑:
此外,记录在其他位置也可以包含数字字符,这些数字字符不应更新。因此,考虑前面的示例,更新后的输入为:
a234b678901234567890
新的输出应该是:
a $$$ b $$$$$ 1234567890
答案 0 :(得分:0)
尝试使用
inp=a234b67890
echo $inp | sed 's/[0-9]/$/g'
# gives a$$$b$$$$$
唯一的要求是输入必须始终为 record_length ,因为sed会用特殊字符替换数字。
希望这会有所帮助。