awk 正则 去掉回车换行

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了awk 正则 去掉回车换行相关的知识,希望对你有一定的参考价值。

我有三行数据
abcd aaa
aefdd 1123-04
acdf bbb
我想取出1123-04而且想要它后面没有回车,我要怎么写正则表达式呀??

参考技术A 详细说明一下要取的规律及需要的结果以及其保存方式吧, 你这样问很含糊啊

就这里的话,尝试按照你的说明来:
match($0,/aefdd ([0-9-]+)$/,want); print want[1];

回车默认在awk里是作记录分割符的,所以不会被匹配进变量的。
如果你修改过记录分割符,那么可以用[\r\n]来匹配换行
参考技术B awk '$2 ~ /[0-9]/print $2' data.txt

在oracle里如何去掉数据后的回车换行符

去掉回车和换行符可通过replace函数,并找出Oracle的回车和换行的ascii码来去掉。

如图:test表中str字段数据内容如下:

执行以下语句,去掉回车和换行符。

回车,ASCII码13
换行,ASCII码10

所以,语句为:

update test set str=replace(replace(str,chr(10)),13);

结果为:

参考技术A chr(10)回车
chr(13)换行
如果记得不错的话。
如果你想替换数据中所有回车和换行可以用
replace(column,chr(10))
replace(replace(column,chr(10)),chr(13))
或者利用translate函数。
如果只是替换末尾的回车换行用rtrim
rtrim(column,chr(10))
--有些系统回车换行就是一个chr(10)
rtrim(column,chr(10),chr(13))或者4次。--有些系统尤其是旧时候的工具开发的系统会同时存在chr(10)和chr(13)。酌情处理吧。
参考技术B 通过配置本地数据库的tns配置文件实现:
去oracle安装目录下oracle\product\10.2.0\db_2\NETWORK\ADMIN\ 找到tnsnames.ora,用记事本打开,里边有远程数据库的tns连接配置串如下
ORCL23 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.3.23)(PORT = 1521))
)
(CONNECT_DATA =
(SID = ORCL)
)
)
添加好ip、端口和目标数据库的实例名(SID),然后确保tns名称(ORCL23)在整个文档中唯一,保存后打开数据库连接工具,输入远程数据库上的用户名密码,选择数据库对象为你配置的连接名就可以了本回答被提问者和网友采纳
参考技术C replace(chr(13)||chr(10),null)

以上是关于awk 正则 去掉回车换行的主要内容,如果未能解决你的问题,请参考以下文章

在oracle里如何去掉数据后的回车换行符

在oracle里如何去掉数据后的回车换行符

在oracle里如何去掉数据后的回车换行符

在oracle里如何去掉数据后的回车换行符

在oracle里如何去掉数据后的回车换行符

在sql server 中,如何去掉字符串的头尾回车换行,中间的回车换行不去掉?