Strona 1 z 2

[+] Polecemie zmieniające zawartość danej linii

: 01 maja 2011, 14:53
autor: Monter08
Witam!
Od pewnego czasu piszę panel do obsługi serwerów, który łączy się przez ssh2_exec do serwera. Aktualnie mam problem z zmianą danych w konfigu, ponieważ nie potrafię zmienić zawartości danej linii, a nie opłaca mi się pobierać zawartości (usuwać plik) i tworzyć z nową konfiguracją. Czy istnieje polecenie, którym mógłbym dokonać lekkiej modyfikacji?

: 01 maja 2011, 16:37
autor: DaVidoSS
To zależy na czym miała by ta edycja polegać.

: 02 maja 2011, 15:27
autor: Monter08
Powiedzmy mamy plik:

Kod: Zaznacz cały

Nazwa=Nazwa
Haslo=2
Nic=Cos
I chciałbym zmienić tylko linie 2, czyli Haslo=2 ma Haslo=4. Polecenia ma mi tylko podmienić daną linie.

: 02 maja 2011, 16:44
autor: lessmian2

Kod: Zaznacz cały

sed -i 's/Haslo=2/Haslo=4/' plik.conf

: 02 maja 2011, 21:58
autor: Monter08
Dziękuje bardzo! Jeszcze o jedno bym zapytał, jest możliwość w taki sam sposób otrzymać wartość Hasła?

: 02 maja 2011, 22:10
autor: DaVidoSS

Kod: Zaznacz cały

cat plik.conf | grep Haslo | cut -c 7

: 02 maja 2011, 22:14
autor: Monter08
Dziękuję DaVidoSS, lecz mam mały problem, podane przez Ciebie polecenie pobiera tylko pierwszy znak ciągu, czyli jeżeli hasło=100 pobiera tylko 1. Czy istnieje możliwość aby pobierało do końca linii?

: 02 maja 2011, 22:33
autor: DaVidoSS
W przykładowym pliku co podałeś był jeden znak. Po prostu dodaj myślnik na końcu.

Kod: Zaznacz cały

cat plik.conf | grep Haslo | cut -c 7-
Jesli masz tego wiecej można zrobić skrypt, użyć zmiennych oraz instrukcji if.

: 02 maja 2011, 22:45
autor: Monter08
Tzn, co masz na myśli?

: 02 maja 2011, 22:46
autor: lessmian2
DaVidoSS, fuj! ;)

Kod: Zaznacz cały

grep Haslo plik.conf | cut -c 7-
Ew.

Kod: Zaznacz cały

awk -F'=' '/Haslo/ {print $2}' plik.conf