π© Bash: Π£ΡΠΈΠ»ΠΈΡΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ΅ΠΊΡΡΠΎΠ² β sed. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ.
ΠΠ° ΡΠ΅ΠΌ ΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°Π½ΠΎ: Rocky Linux 9.5 (Blue Onyx)/ Debian GNU/Linux 12 (bookworm)/Ubuntu 24.04.1 LTS/ Fedora Linux 41 (KDE Plasma)
Π£ΡΠΈΠ»ΠΈΡΠ° sed.
Sed
(ΠΎΡ Π°Π½Π³Π». Stream EDitor) β ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½Π°Ρ ΡΡΠΈΠ»ΠΈΡΠ° Π΄Π»Ρ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΡ
ΠΏΠΎΡΠΎΠΊΠΎΠ². ΠΠ½Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ, Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ, ΡΠ΄Π°Π»ΡΡΡ ΠΈΠ»ΠΈ ΡΡΠ°Π½ΡΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡΠΎΠΊΠΈ Π² ΡΠ΅ΠΊΡΡΠΎΠ²ΡΡ
ΡΠ°ΠΉΠ»Π°Ρ
ΠΈ ΠΏΠΎΡΠΎΠΊΠ°Ρ
Π΄Π°Π½Π½ΡΡ
.
ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ sed
β ΠΎΠ½ ΡΠΈΡΠ°Π΅ΡΡΡ ΡΡΡΠΎΠΊΠ° Π·Π° ΡΡΡΠΎΠΊΠΎΠΉ, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π·Π°Π΄Π°Π½Π½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ, Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡ ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΉ ΡΠ°ΠΉΠ», Π΅ΡΠ»ΠΈ ΡΡΠΎ Π½Π΅ ΡΠΊΠ°Π·Π°Π½ΠΎ ΡΠ²Π½ΠΎ.
ΠΠ°ΠΊ Π½Π°ΠΉΡΠΈ ΡΡΡΠΎΠΊΡ ΠΈ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ Π΅Ρ?
ΠΠ½ΠΎΠ³Π΄Π° Π±ΡΠ²Π°Π΅Ρ Π½ΡΠΆΠ½ΠΎ ΡΠΊΡΠΈΠΏΡΠΎΠΌ ΠΏΠΎΠΏΡΠ°Π²ΠΈΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ.
ΠΠ΄Π΅ΡΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΊΠ°ΠΊ Π½Π°ΠΉΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΡ ΡΡΡΠΎΠΊΡ ΠΏΠΎ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠΌΡ ΡΠ»ΠΎΠ²Ρ ΠΈ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ Π΅Ρ ΠΈΠ»ΠΈ ΡΠ½ΡΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΈΠ»ΠΈΡΡ sed
.
ΠΠΎΡ ΠΊΠ°ΠΊ ΡΡΠ°Π²ΠΈΡΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ:
$ sed -i '/<ΡΠ»ΠΎΠ²ΠΎ>/s/^/#/' /<ΡΠ°ΠΉΠ»>
sed -i
β ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ°ΠΉΠ»;<ΡΠ»ΠΎΠ²ΠΎ>
β ΠΈΡΠ΅ΠΌ ΡΡΡΠΎΠΊΠΈ Ρ ΡΡΠΈΠΌ ΡΠ»ΠΎΠ²ΠΎΠΌ;s
β Π·Π°ΠΌΠ΅Π½ΠΈΡΡ;^
β ΡΡΠΎ Π·Π°ΠΌΠ΅Π½ΡΠ΅ΠΌ (Π½Π°ΡΠ°Π»ΠΎ ΡΡΡΠΎΠΊΠΈ);#
β Π½Π° ΡΡΠΎ Π·Π°ΠΌΠ΅Π½ΡΠ΅ΠΌ;<ΡΠ°ΠΉΠ»>
β ΡΠ°ΠΉΠ», ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅ΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ.
Π‘Π½ΡΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊ:
$ sed -i '/<ΡΠ»ΠΎΠ²ΠΎ>/s/#//' /<ΡΠ°ΠΉΠ»>
ΠΡΠΈΠΌΠ΅Ρ:
$ cd ~ $ mcedit test.txt $ cat test.txt
ΠΡΠ²Π΅Ρ:
ΡΠ±Π»ΠΎΠΊΠΎ
Π³ΡΡΡΠ°
Π²ΠΈΡΠ½Ρ
$ sed -i '/Π²ΠΈΡΠ½Ρ/s/^/#/' test.txt $ cat test.txt
ΠΡΠ²Π΅Ρ:
ΡΠ±Π»ΠΎΠΊΠΎ
Π³ΡΡΡΠ°
#Π²ΠΈΡΠ½Ρ
$ sed -i '/Π²ΠΈΡΠ½Ρ/s/#//' test.txt $ cat test.txt
ΡΠ±Π»ΠΎΠΊΠΎ
Π³ΡΡΡΠ°
Π²ΠΈΡΠ½Ρ
ΠΡΠΈΠ³ΠΈΠ½Π°Π»Ρ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ² ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ.
- telegra.ph Β«Bash. ΠΠ°ΠΉΡΠΈ ΡΡΡΠΎΠΊΡ ΠΈ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ sedΒ».