nel*_*aro 4 linux script bash sed ascii
在 linux 中,我如何从 char 中获取 ascii 十进制/十六进制/八进制代码或从十进制/十六进制/八进制代码中获取 ascii 字符。
我从gnu sed 用户手册中看到我可以使用 \d# \o# \x# 来指定一个字符,但我不确定如何使用它。
如果有人有更好的方法来获取 ` 和 ' 字符,请帮助
我想用反引号 '`' 字符和 ''' 单引号字符进行 sed。
sed '/`/p'
这些不起作用
sed '/\'/p'
sed '/`/p'
不完全确定您要在那里做sed
什么。这是你想要的?
printf "\x27 \x60\n"
# prints
# ' `
printf "%x %x\n" "''" "'\`"
# prints
# 27 60
Run Code Online (Sandbox Code Playgroud)
编辑
sed
无论是在其正则表达式中`
还是'
在其正则表达式中都非常好。您遇到问题的地方是通过 shell 解释器获取这些字符,因为单引号和反引号对 shell 都有特殊的含义,如果要使其进入 sed 而不用 bash 抛出语法错误或修改输入,则必须引用它们。
引用特殊字符的方法有三种:单引号'
、双引号"
和反斜杠\
。他们的行为都有些不同。 '
引用除自身之外的所有内容,因此您可以使用 this 来引用,`
但不能使用'
. "
引用除\
, `
, and之外的所有内容$
(在此无关紧要),因此您可以使用"
来引用'
而不是`
。 \
引用所有内容,以便您可以将其用于两者。只要保持引用规则直截了当(它们从左到右解释),就可以嵌套这些方法。
为了使事情更具体,假设您想要s/`'/replacement/
在sed
正则表达式中。有很多方法可以做到这一点。下面给出两个不同的例子。
# concatenation of single-quoted s/`, backslash-quoted ', and
# single-quoted remainder of the command
sed -e 's/`'\''/replacement/'
# one double-quoted string quotes the single-quote, but an
# additional backslash is needed to quote the backtick
sed -e "s/\`'/replacement/"
Run Code Online (Sandbox Code Playgroud)
只需记住引用规则并使用最易读的版本即可完成工作。有关QUOTING
完整说明和参考,请参阅bash 手册中的部分。
最后一点,我会避免使用特殊的\d
,\x
,\o
等因逃逸
sed
,可能不如正确引用的模式可移植。'
,并`
关闭他们的头顶?在 shell 类型中,man ascii
这将为您提供八进制、十六进制和十进制的字符代码。
ASCII(7) BSD Miscellaneous Information Manual ASCII(7)
NAME
ascii -- octal, hexadecimal and decimal ASCII character sets
DESCRIPTION
The octal set:
000 nul 001 soh 002 stx 003 etx 004 eot 005 enq 006 ack 007 bel
010 bs 011 ht 012 nl 013 vt 014 np 015 cr 016 so 017 si
020 dle 021 dc1 022 dc2 023 dc3 024 dc4 025 nak 026 syn 027 etb
030 can 031 em 032 sub 033 esc 034 fs 035 gs 036 rs 037 us
040 sp 041 ! 042 " 043 # 044 $ 045 % 046 & 047 '
050 ( 051 ) 052 * 053 + 054 , 055 - 056 . 057 /
060 0 061 1 062 2 063 3 064 4 065 5 066 6 067 7
070 8 071 9 072 : 073 ; 074 < 075 = 076 > 077 ?
100 @ 101 A 102 B 103 C 104 D 105 E 106 F 107 G
110 H 111 I 112 J 113 K 114 L 115 M 116 N 117 O
120 P 121 Q 122 R 123 S 124 T 125 U 126 V 127 W
130 X 131 Y 132 Z 133 [ 134 \ 135 ] 136 ^ 137 _
140 ` 141 a 142 b 143 c 144 d 145 e 146 f 147 g
150 h 151 i 152 j 153 k 154 l 155 m 156 n 157 o
160 p 161 q 162 r 163 s 164 t 165 u 166 v 167 w
170 x 171 y 172 z 173 { 174 | 175 } 176 ~ 177 del
The hexadecimal set:
00 nul 01 soh 02 stx 03 etx 04 eot 05 enq 06 ack 07 bel
08 bs 09 ht 0a nl 0b vt 0c np 0d cr 0e so 0f si
10 dle 11 dc1 12 dc2 13 dc3 14 dc4 15 nak 16 syn 17 etb
18 can 19 em 1a sub 1b esc 1c fs 1d gs 1e rs 1f us
20 sp 21 ! 22 " 23 # 24 $ 25 % 26 & 27 '
28 ( 29 ) 2a * 2b + 2c , 2d - 2e . 2f /
30 0 31 1 32 2 33 3 34 4 35 5 36 6 37 7
38 8 39 9 3a : 3b ; 3c < 3d = 3e > 3f ?
40 @ 41 A 42 B 43 C 44 D 45 E 46 F 47 G
48 H 49 I 4a J 4b K 4c L 4d M 4e N 4f O
50 P 51 Q 52 R 53 S 54 T 55 U 56 V 57 W
58 X 59 Y 5a Z 5b [ 5c \ 5d ] 5e ^ 5f _
60 ` 61 a 62 b 63 c 64 d 65 e 66 f 67 g
68 h 69 i 6a j 6b k 6c l 6d m 6e n 6f o
70 p 71 q 72 r 73 s 74 t 75 u 76 v 77 w
78 x 79 y 7a z 7b { 7c | 7d } 7e ~ 7f del
The decimal set:
0 nul 1 soh 2 stx 3 etx 4 eot 5 enq 6 ack 7 bel
8 bs 9 ht 10 nl 11 vt 12 np 13 cr 14 so 15 si
16 dle 17 dc1 18 dc2 19 dc3 20 dc4 21 nak 22 syn 23 etb
24 can 25 em 26 sub 27 esc 28 fs 29 gs 30 rs 31 us
32 sp 33 ! 34 " 35 # 36 $ 37 % 38 & 39 '
40 ( 41 ) 42 * 43 + 44 , 45 - 46 . 47 /
48 0 49 1 50 2 51 3 52 4 53 5 54 6 55 7
56 8 57 9 58 : 59 ; 60 < 61 = 62 > 63 ?
64 @ 65 A 66 B 67 C 68 D 69 E 70 F 71 G
72 H 73 I 74 J 75 K 76 L 77 M 78 N 79 O
80 P 81 Q 82 R 83 S 84 T 85 U 86 V 87 W
88 X 89 Y 90 Z 91 [ 92 \ 93 ] 94 ^ 95 _
96 ` 97 a 98 b 99 c 100 d 101 e 102 f 103 g
104 h 105 i 106 j 107 k 108 l 109 m 110 n 111 o
112 p 113 q 114 r 115 s 116 t 117 u 118 v 119 w
120 x 121 y 122 z 123 { 124 | 125 } 126 ~ 127 del
FILES
/usr/share/misc/ascii
HISTORY
An ascii manual page appeared in Version 7 AT&T UNIX.
BSD June 5, 1993 BSD
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6622 次 |
最近记录: |