我有一个应该格式化的文件:
ID QTY
xxxxxxxxx,xxx
xxxxxxxxx,xxx
xxxxxxxxx,xxx
xxxxxxxxx,xxx
xxxxxxxxx,xxx
有时会像这样格式化,但使用特殊字符分隔前9位数字。
xxx,xx,xx,xx,xxx
xxx/xx/xx/xx,xxx
xx.xxx.xxxx,xxx
我想知道如何从整个ID中删除任何特殊字符。
答案 0 :(得分:0)
可能有用。如果字段长度都是固定的,即9和3个字符,则使用此字符。
sed 's/[\/.\,]//g' test2|awk '{print substr ($0, 1,9)","substr ($0, 10,13)}'
如果只修复第一个字段长度,即9个字符,则使用此命令。
sed 's/[\/.\,]//g' test2|sed -r -e 's/^.{9}/&,/'
答案 1 :(得分:0)
这是一个sed脚本。它会删除每个特殊字符,然后在包含特殊字符的第九行之后重新插入,
:
sed -r '/[./,]/ {s/[,/.]//g; s/(.{9})(.*)/\1,\2/g}'