Hi Folks -
I need help manipulating a file.
For column 2, I need to replace the first 3 leading zeros with spaces.
The file looks like such:
00098|00011250000003|00000000000.0200|D|1|07|51|04INDP |04|00820|CS|000000|092717|000000000000.0000|000|
00098|000011250000003|00000000000.0200|D|1|07|51|04INDP |04|00820|CS|000000|092717|000000000000.0000|000|
00098|00011250000063|00000000011.1100|D|1|07|51|04INDP |04|00820|CS|-00001|092717|-00000000012.6000|000|
00098|000011250000063|00000000011.1100|D|1|07|51|04INDP |04|00820|CS|-00001|092717|-00000000012.6000|000|
00098|000011250000063|00000000032.8500|D|1|07|51|04INDP |04|00820|CS|-00001|092717|-00000000035.5200|000|
00098|000011250000063|00000000011.1100|D|1|07|51|04INDP |04|00820|CS|-00001|092717|-00000000012.6000|000|
00098|000011250000063|00000000011.1100|D|1|07|51|04INDP |04|00820|CS|-00001|092717|-00000000012.6000|000|
00098|00011200000053|00000000075.0000|D|6|03|51|04INDP |04|00820|CC|000000|092717|000000000000.0000|000|
00098|000953905002285|00000000065.0000|C| |99|00|04INDP |04|01530|SM|000000|092717|000000000000.0000|000|
00098|000019000016491|00000000062.5000|D|3|99|00|04INDP |04|01530|CM|000000|092717|000000000000.0000|000|
00098|000051260000003|00000000002.4000|D|1|04|00|04INDP |04|03006|CS|000000|092717|000000000000.0000|333|
00098|000051260000003|00000000000.3400|D|1|04|00|04INDP |04|03006|CS|000000|092717|000000000000.0000|333|
00098|00051260000003|00000000000.5200|D|1|04|00|04INDP |04|03006|CS|000000|092717|000000000000.0000|333|
00098|00051260000054|00000000050.6800|D|1|04|00|04INDP |04|03006|CS|-00002|092717|-00000000049.6800|333|
00098|000051260000054|00000000033.1700|D|1|04|00|04INDP |04|03006|CS|-00001|092717|-00000000032.5200|333|
00098|000051260000054|00000000226.6000|D|1|04|00|04INDP |04|03006|CS|-00010|092717|-00000000291.6000|333|
I tried sed but can't get anything to work.
Thanks!
Scott
2
Assuming they are always zeros..
$ sed "s/|000/| /" t.txt
00098| 11250000003|00000000000.0200|D|1|07|51|04INDP |04|00820|CS|000000|092717|000000000000.0000|000|
00098| 011250000003|00000000000.0200|D|1|07|51|04INDP |04|00820|CS|000000|092717|000000000000.0000|000|
00098| 11250000063|00000000011.1100|D|1|07|51|04INDP |04|00820|CS|-00001|092717|-00000000012.6000|000|
00098| 011250000063|00000000011.1100|D|1|07|51|04INDP |04|00820|CS|-00001|092717|-00000000012.6000|000|
00098| 011250000063|00000000032.8500|D|1|07|51|04INDP |04|00820|CS|-00001|092717|-00000000035.5200|000|
00098| 011250000063|00000000011.1100|D|1|07|51|04INDP |04|00820|CS|-00001|092717|-00000000012.6000|000|
00098| 011250000063|00000000011.1100|D|1|07|51|04INDP |04|00820|CS|-00001|092717|-00000000012.6000|000|
00098| 11200000053|00000000075.0000|D|6|03|51|04INDP |04|00820|CC|000000|092717|000000000000.0000|000|
00098| 953905002285|00000000065.0000|C| |99|00|04INDP |04|01530|SM|000000|092717|000000000000.0000|000|
00098| 019000016491|00000000062.5000|D|3|99|00|04INDP |04|01530|CM|000000|092717|000000000000.0000|000|
00098| 051260000003|00000000002.4000|D|1|04|00|04INDP |04|03006|CS|000000|092717|000000000000.0000|333|
00098| 051260000003|00000000000.3400|D|1|04|00|04INDP |04|03006|CS|000000|092717|000000000000.0000|333|
00098| 51260000003|00000000000.5200|D|1|04|00|04INDP |04|03006|CS|000000|092717|000000000000.0000|333|
00098| 51260000054|00000000050.6800|D|1|04|00|04INDP |04|03006|CS|-00002|092717|-00000000049.6800|333|
00098| 051260000054|00000000033.1700|D|1|04|00|04INDP |04|03006|CS|-00001|092717|-00000000032.5200|333|
00098| 051260000054|00000000226.6000|D|1|04|00|04INDP |04|03006|CS|-00010|092717|-00000000291.6000|333|
Otherwise, any three characters..
$ sed "s/|.../| /"
Wow this was perfect!!! Thank you!
Hello SIMMS7400,
Could you please try following awk
too and let me know if this helps you.
awk --re-interval -F"|" '{sub(/^0{3}/,"",$2)} 1' OFS="|" Input_file
I have old version of awk
, so in case you have latest version of awk
, you could use it without --re-interval
too.
Thanks,
R. Singh