🐧 Как Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π² Ρ„Π°ΠΉΠ»Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ sed?

by itisgood

Steam Editor, сокращСнно sed, – это ΠΊΠΎΠΌΠ°Π½Π΄Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ для поиска ΠΈ Π·Π°ΠΌΠ΅Π½Ρ‹ любого тСкста Π² Ρ„Π°ΠΉΠ»Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚Π΅Ρ…Π½ΠΈΠΊ ΠΈ синтаксиса.

Π’ этом руководствС ΠΌΡ‹ разбСрСмся с концСпциями sed ΠΈ ΡƒΠ·Π½Π°Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΈΠ»ΠΈ Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² Ρ„Π°ΠΉΠ»Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ sed.

Бинтаксис для Π·Π°ΠΌΠ΅Π½Ρ‹ строки

Для Π·Π°ΠΌΠ΅Π½Ρ‹ значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ sed Π½Π°ΠΌ сначала Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ sed ΠΈ ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ строку Π² любом Ρ„Π°ΠΉΠ»Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ sed.

Для Π·Π°ΠΌΠ΅Π½Ρ‹ любой строки синтаксис довольно прост ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π½ΠΈΠΆΠ΅:

$Β sedΒ -iΒ 's/old-string/new-string/g'Β file_name

Π’ этом синтаксисС Π²Π°ΠΌ просто Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ строку, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π½Π° ΡΡ‚Π°Ρ€ΡƒΡŽ, Π° Π·Π°Ρ‚Π΅ΠΌ Π½ΠΎΠ²ΡƒΡŽ строку Ρ‡Π΅Ρ€Π΅Π· Π·Π°ΠΏΡΡ‚ΡƒΡŽ.

ПослС этого ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ», Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ ΠΈ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡƒΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ строку.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρƒ нас Π΅ΡΡ‚ΡŒ тСкстовый Ρ„Π°ΠΉΠ» “file.txt”, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ тСкст Ρ‚ΠΈΠΏΠ° “Π”ΠΎΠ±Ρ€ΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° ΠΊΠ°Π½Π°Π» It is good”, ΠΈ Π² этом Ρ„Π°ΠΉΠ»Π΅ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ слово ΠΊΠ°Π½Π°Π» Π½Π° сайт с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ sed.

catΒ file.txt

Π”ΠΎΠ±Ρ€ΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° ΠΊΠ°Π½Π°Π» It is good
Команда для измСнСния ΠΊΠ°Π½Π°Π»Π° Π½Π° сайт Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:
$Β sedΒ -iΒ 's/ΠΊΠ°Π½Π°Π»/сайт/g'Β file.txt
ПослС выполнСния ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΌΡ‹ посмотрим Π½Π° Ρ„Π°ΠΉΠ»:
catΒ file.txt 

Π”ΠΎΠ±Ρ€ΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° сайт It is good

Π‘Ρ‚Ρ€ΠΎΠΊΠ° Π±Ρ‹Π»Π° Π·Π°ΠΌΠ΅Π½Π΅Π½Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ sed.

Π’ΠΎΡ‚ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΈ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π»ΡŽΠ±ΡƒΡŽ строку Π² любом Ρ„Π°ΠΉΠ»Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы Linux с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ sed.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΡƒΠ·Π½Π°Π΅ΠΌ, ΠΊΠ°ΠΊ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² Ρ„Π°ΠΉΠ»Π΅.

Π—Π°ΠΌΠ΅Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ

Бинтаксис для поиска ΠΈ Π·Π°ΠΌΠ΅Π½Ρ‹ значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² Ρ„Π°ΠΉΠ»Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ sed Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ для поиска ΠΈ Π·Π°ΠΌΠ΅Π½Ρ‹ строки Π² Ρ„Π°ΠΉΠ»Π΅.

ЕдинствСнная ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² написании рСгулярного выраТСния для поиска Ρ‡Π΅Π³ΠΎ-Π»ΠΈΠ±ΠΎ Π² Ρ„Π°ΠΉΠ»Π΅ для Π·Π°ΠΌΠ΅Π½Ρ‹ этой части.

Π˜Ρ‚Π°ΠΊ, для измСнСния значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ синтаксис Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

$Β sedΒ -iΒ 's/var=.*/var=new_value/'Β file_name

Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΈΡΡ‚ΠΈΠ½Π½ΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΈ ΠΏΠΎΠ½ΡΡ‚ΡŒ Π΅Π΅ с большСй ΡΡΠ½ΠΎΡΡ‚ΡŒΡŽ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρƒ нас Π΅ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ» ΠΊΠΎΠ΄Π° Python, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π΅ΡΡ‚ΡŒ нСсколько ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….

Π­Ρ‚ΠΈΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ присвоСны Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ значСния.


$ cat code.py
num1 = 1.5
num2 = 6.3

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π»ΡŽΠ±ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΠΉΡ‚ΠΈ Π΅Π΅ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΈ Π·Π°Π΄Π°Ρ‚ΡŒ Π΅ΠΉ Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ sed, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π½ΠΈΠΆΠ΅:

$Β sedΒ -iΒ ‘s/num1 =.*/num1 =200/’Β code.py

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’ этом постС прСдставлСн простой ΠΈ Π»Π΅Π³ΠΊΠΈΠΉ способ Π½Π°ΠΉΡ‚ΠΈ ΠΈ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π² любом Ρ„Π°ΠΉΠ»Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ sed.
ΠœΡ‹ Π½Π°ΡƒΡ‡ΠΈΠ»ΠΈΡΡŒ Π·Π°ΠΌΠ΅Π½ΡΡ‚ΡŒ строку Π² Ρ„Π°ΠΉΠ»Π΅ ΠΈ Π·Π°ΠΌΠ΅Π½ΡΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ sed.

Loading

You may also like

Leave a Comment