Linux 及数据库中替换^B、^A、^C等特殊字符

12 篇文章 0 订阅
2 篇文章 0 订阅

Shell脚本中处理

使用AWK进行替换

#将test.del中的^A(即ctrl+v+a) 替换成英文逗号","
#由于^A在查看时不可见,我这里直接vi中粘贴出来
[test@TMP]$ vi test.del
27^A2022-03-23 00:00:00.000000^A5.96290^A26544.53934^A180000.0000^A0.0000^A0.0000^A0.0000^A0.0000^A2022-03-23 00:00:00.000000
[test@TMP]cat -T test.del|awk -F'\001' 'BEGIN{OFS=","}{NF=NF;print}' > test.txt
[test@TMP]$ cat test.txt
27,2022-03-23 00:00:00.000000,5.96290,26544.53934,180000.0000,0.0000,0.0000,0.0000,0.0000,2022-03-23 00:00:00.000000
#同样将^B、^A、^C提换成^A
[test@TMP]cat -T test.del|awk -F'\002\001\003' 'BEGIN{OFS="\001"}{NF=NF;print}' > test.txt

使用sed替换:

#将逗号替换成^A
[test@TMP]$ time sed -i 's/,/\x01/g' test.txt
#将^A替换成逗号
[test@TMP]$ time sed -i 's/\x01/,/g' test.txt

数据库中处理

行分割符

 将每行结尾为 ^B^C^A^C 替换成  ^A

数据库中替换:

--将^A替换成''
replace(column,'CHR(1)','')
--将字段中包含^A、^B、^C的数据替换成''
replace(replace(replace(column,'CHR(1)',''),'CHR(2)',''),'CHR(3)','')

数据库中表示

分割符DB2ORACLEMYSQL
^ACHR(1)CHR(1)CHR(1)
^BCHR(2)CHR(2)CHR(2)
^CCHR(3)CHR(3)CHR(3)

数据库中拼接 ^C ^A ^C

--mysql拼接:
concat(char(3),char(1),char(3))
--Oracle、DB2:
chr(3)||chr(1)||chr(3)

ASCII码表:

Bin(二进制)Oct(八进制)Dec(十进制)Hex(十六进制)缩写/字符解释
0000 0000000x00NUL(null)空字符
0000 0001110x01SOH(start of headline)标题开始
0000 0010220x02STX (start of text)正文开始
0000 0011330x03ETX (end of text)正文结束
0000 0100440x04EOT (end of transmission)传输结束
0000 0101550x05ENQ (enquiry)请求
0000 0110660x06ACK (acknowledge)收到通知
0000 0111770x07BEL (bell)响铃
0000 10001080x08BS (backspace)退格
0000 10011190x09HT (horizontal tab)水平制表符
0000 101012100x0ALF (NL line feed, new line)换行键
0000 101113110x0BVT (vertical tab)垂直制表符
0000 110014120x0CFF (NP form feed, new page)换页键
0000 110115130x0DCR (carriage return)回车键
0000 111016140x0ESO (shift out)不用切换
0000 111117150x0FSI (shift in)启用切换
0001 000020160x10DLE (data link escape)数据链路转义
0001 000121170x11DC1 (device control 1)设备控制1
0001 001022180x12DC2 (device control 2)设备控制2
0001 001123190x13DC3 (device control 3)设备控制3
0001 010024200x14DC4 (device control 4)设备控制4
0001 010125210x15NAK (negative acknowledge)拒绝接收
0001 011026220x16SYN (synchronous idle)同步空闲
0001 011127230x17ETB (end of trans. block)结束传输块
0001 100030240x18CAN (cancel)取消
0001 100131250x19EM (end of medium)媒介结束
0001 101032260x1ASUB (substitute)代替
0001 101133270x1BESC (escape)换码(溢出)
0001 110034280x1CFS (file separator)文件分隔符
0001 110135290x1DGS (group separator)分组符
0001 111036300x1ERS (record separator)记录分隔符
0001 111137310x1FUS (unit separator)单元分隔符
0010 000040320x20(space)空格
0010 000141330x21!叹号
0010 001042340x22"双引号
0010 001143350x23#井号
0010 010044360x24$美元符
0010 010145370x25%百分号
0010 011046380x26&和号
0010 011147390x27闭单引号
0010 100050400x28(开括号
0010 100151410x29)闭括号
0010 101052420x2A*星号
0010 101153430x2B+加号
0010 110054440x2C,逗号
0010 110155450x2D-减号/破折号
0010 111056460x2E.句号
0010 111157470x2F/斜杠
0011 000060480x300字符0
0011 000161490x311字符1
0011 001062500x322字符2
0011 001163510x333字符3
0011 010064520x344字符4
0011 010165530x355字符5
0011 011066540x366字符6
0011 011167550x377字符7
0011 100070560x388字符8
0011 100171570x399字符9
0011 101072580x3A:冒号
0011 101173590x3B;分号
0011 110074600x3C<小于
0011 110175610x3D=等号
0011 111076620x3E>大于
0011 111177630x3F?问号
0100 0000100640x40@电子邮件符号
0100 0001101650x41A大写字母A
0100 0010102660x42B大写字母B
0100 0011103670x43C大写字母C
0100 0100104680x44D大写字母D
0100 0101105690x45E大写字母E
0100 0110106700x46F大写字母F
0100 0111107710x47G大写字母G
0100 1000110720x48H大写字母H
0100 1001111730x49I大写字母I
0100 1010112740x4AJ大写字母J
0100 1011113750x4BK大写字母K
0100 1100114760x4CL大写字母L
0100 1101115770x4DM大写字母M
0100 1110116780x4EN大写字母N
0100 1111117790x4FO大写字母O
0101 0000120800x50P大写字母P
0101 0001121810x51Q大写字母Q
0101 0010122820x52R大写字母R
0101 0011123830x53S大写字母S
0101 0100124840x54T大写字母T
0101 0101125850x55U大写字母U
0101 0110126860x56V大写字母V
0101 0111127870x57W大写字母W
0101 1000130880x58X大写字母X
0101 1001131890x59Y大写字母Y
0101 1010132900x5AZ大写字母Z
0101 1011133910x5B[开方括号
0101 1100134920x5C\反斜杠
0101 1101135930x5D]闭方括号
0101 1110136940x5E^脱字符
0101 1111137950x5F_下划线
0110 0000140960x60`开单引号
0110 0001141970x61a小写字母a
0110 0010142980x62b小写字母b
0110 0011143990x63c小写字母c
0110 01001441000x64d小写字母d
0110 01011451010x65e小写字母e
0110 01101461020x66f小写字母f
0110 01111471030x67g小写字母g
0110 10001501040x68h小写字母h
0110 10011511050x69i小写字母i
0110 10101521060x6Aj小写字母j
0110 10111531070x6Bk小写字母k
0110 11001541080x6Cl小写字母l
0110 11011551090x6Dm小写字母m
0110 11101561100x6En小写字母n
0110 11111571110x6Fo小写字母o
0111 00001601120x70p小写字母p
0111 00011611130x71q小写字母q
0111 00101621140x72r小写字母r
0111 00111631150x73s小写字母s
0111 01001641160x74t小写字母t
0111 01011651170x75u小写字母u
0111 01101661180x76v小写字母v
0111 01111671190x77w小写字母w
0111 10001701200x78x小写字母x
0111 10011711210x79y小写字母y
0111 10101721220x7Az小写字母z
0111 10111731230x7B{开花括号
0111 11001741240x7C
0111 11011751250x7D}闭花括号
0111 11101761260x7E~波浪号
0111 11111771270x7FDEL (delete)删除
  • 3
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值