πΉ 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. ΠΡΠΈΠ³ΠΈΠ½Π°Π»Ρ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ² ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ.
- qna.habr.com Β«sed Π²ΡΡΠ°Π²Π»ΡΠ΅ΠΌ ΡΠΏΠ΅ΡΡΠΈΠΌΠ²ΠΎΠ»ΡΒ»
- istarik.ru Β«ASCII ΡΠ°Π±Π»ΠΈΡΠ°Β»