🐹 Bash: БпСцсимволы ΠΈ экранированиС символов.

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅:

1. ОписаниС.
2. ЗамСняСм тСкст со спСцсимволами.
3. ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π»Ρ‹ источников ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ.


1. ОписаниС.

К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, трСбуСтся Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ:

<hello world>

Π½Π°

hello world

ЕстСствСнно, трСбуСтся ΡΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΡƒΡŽ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ Ρ‚ΠΈΠΏΠ°:

sed -i 's/<hello world>/hello world/g' test.php

Однако, Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅ ΠΌΡ‹ Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ hello world. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ тСкст ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ замСняСм прСкрасно экранируСтся, Π° Π²ΠΎΡ‚ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ вставляСм ΠΎΠ½ ΠΈΠ΄Π΅Ρ‚ чистым тСкстом, ΠΈ всС спСцсимволы попросту ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ. Для Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· этого полоТСния ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΌΠ°Π»ΠΎΠΈΠ·Π²Π΅ΡΡ‚Π½ΡƒΡŽ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ sed, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² hex-16.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΡ‹ сдСлаСм сразу 2 Π΄Π΅Π»Π°, смоТСм с Π»Π΅Π³ΠΊΠΎΡΡ‚ΡŒΡŽ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ строку любой слоТности Π² sed, Π½Π΅ оТидая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с спСцсимволами. И Ρ‚Π°ΠΊ ΠΆΠ΅ смоТСм Π²ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΈΡ… Π² Π²Ρ‹Π²ΠΎΠ΄, Π½Π΅ опасаясь остановки самого скрипта.

sed -i 's/\x3Chello\x3E\,/hello world,/g' test.php

2. ЗамСняСм тСкст со спСцсимволами.

Π‘ΠΈΠΌΠ²ΠΎΠ» Π² ASCII БоотвСтствиС Π² HEX-16 Π‘ΠΈΠΌΠ²ΠΎΠ» Π² ASCII БоотвСтствиС Π² HEX-16
! \x21 " \x22
# \x23 $ \x24
% \x25 & \x26
' \x27 * \x2A
( \x28 ) \x29
+ \x2B - \x2D
[ \x5B ] \x5D
\ \x5C ^ \x5E
_ \x5F ` \x60
, \x2C . \x2E
0 \x30 / \x2F
1 \x31 2 \x32
3 \x33 4 \x34
5 \x35 6 \x36
7 \x37 8 \x38
9 \x39 ? \x3F
: \x3A ; \x3B
> \x3E < \x3C
= \x3D @ \x40
} \x7D { \x7B
| \x7C ~ \x7E
A \x41 B \x42
C \x43 D \x44
E \x45 F \x46
G \x47 H \x48
I \x49 J \x4A
K \x4B L \x4C
M \x4D N \x4E
O \x4F P \x50
Q \x51 R \x52
S \x53 T \x54
U \x55 V \x56
W \x57 X \x58
Y \x59 Z \x5A
a \x61 b \x62
c \x63 d \x64
e \x65 f \x66
g \x67 h \x68
i \x69 j \x6A
k \x6B l \x6C
m \x6D n \x6E
o \x6F p \x70
q \x71 r \x72
s \x73 t \x74
u \x75 v \x76
w \x77 x \x78
y \x79 z \x7A
DEL \x7F    

3. ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π»Ρ‹ источников ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ.

  1. qna.habr.com Β«sed вставляСм спСцсимволы»
  2. istarik.ru Β«ASCII Ρ‚Π°Π±Π»ΠΈΡ†Π°Β»

Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅: