我得到一个由Pipe(|)分隔的数据文件,共有17列,在最后一列的末尾有不同的垃圾字符,这是我们不想要的。最后一列值如果存在,则值始终为时间戳,即YYYY-MM-DD HH:MI:SS,但有时候最后一列值也不存在。
我需要一种方法来删除行尾的垃圾字符,如果它完全存在的话。
1|0059019539|12MO-V43|0000000001|0000000001||2015-08-06 15:25:04||2015-08-06 15:25:04|2016-08-05|0000000011|0000000001|-10.00|P000101581|V7|Action|2015-08-05 00:00:00
1|0059019539|VAGR~V47|0000000001|0000000001||2015-08-06 15:25:04||2015-08-06 15:25:04|2016-08-05|0000000011|0000000001|-33.00|P000101581|33-12MO-V2|Action|2015-08-05 00:00:00^@^@^@^@
在示例中,第二行是垃圾字符。
答案 0 :(得分:1)
cat ACTUALFILE.DATA|awk -F'|' '{ print $1 "|" $2 "|" $3 "|" $4 "|" $5 "|" $6 "|" $7 "|" $8 "|" $9 "|" $10 "|" $11 "|" $12 "|" $13 "|" $14 "|" $15 "|" $16 "|" substr($17, 1, 19)}' > BACKUPFILE.DATA
答案 1 :(得分:0)
当您的垃圾是二进制时,您可以尝试
strings ACTUALFILE.DATA > BACKUPFILE.DATA