str是转换前的文本,以特殊字符“@_@”作为分隔符,这种分隔符在hive建表的时候识别不了,最后会将
str识别成str1,会多出内容为_的列
str = "\N@_@G0003340010006200102020060100300002"
str1 = "\N _ G0003340010006200102020060100300002"
方法1:尝试使用
perl -p -i -e "s/@_@/\001/g" /usr/local/data/test1.txt (test1.txt 存储的是str内容)
这里会因为转换字符“\001”和待转换字符“@_@”中都有特殊字符,所以最后实际结果,会导致下划线“_”依然保留在。
所以没有成功,有精通perl的可以讨论下。
方法二:
sed -i "s/@_@/$(echo -ne "\001")/g" /usr/local/data/test1.txt
没什么好解释,这个转换成功了,看官可以自己尝试下。