linux字符替换--hive默认字符

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

没什么好解释,这个转换成功了,看官可以自己尝试下。

 

 

 


版权声明:本文为lucky123sky原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。