[+] Polecemie zmieniaj

Potrzebujesz pomocy z C, C++, perl, python, itp.
Monter08
Posty: 12
Rejestracja: 29 kwietnia 2011, 23:30

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

Post 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?
Awatar użytkownika
DaVidoSS
Junior Member
Posty: 875
Rejestracja: 06 marca 2010, 11:26
Lokalizacja: ~/

Post autor: DaVidoSS »

To zależy na czym miała by ta edycja polegać.
Monter08
Posty: 12
Rejestracja: 29 kwietnia 2011, 23:30

Post 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.
Awatar użytkownika
lessmian2
Member
Posty: 1088
Rejestracja: 30 kwietnia 2008, 19:38
Lokalizacja: Kraków

Post autor: lessmian2 »

Kod: Zaznacz cały

sed -i 's/Haslo=2/Haslo=4/' plik.conf
Monter08
Posty: 12
Rejestracja: 29 kwietnia 2011, 23:30

Post autor: Monter08 »

Dziękuje bardzo! Jeszcze o jedno bym zapytał, jest możliwość w taki sam sposób otrzymać wartość Hasła?
Awatar użytkownika
DaVidoSS
Junior Member
Posty: 875
Rejestracja: 06 marca 2010, 11:26
Lokalizacja: ~/

Post autor: DaVidoSS »

Kod: Zaznacz cały

cat plik.conf | grep Haslo | cut -c 7
Monter08
Posty: 12
Rejestracja: 29 kwietnia 2011, 23:30

Post 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?
Awatar użytkownika
DaVidoSS
Junior Member
Posty: 875
Rejestracja: 06 marca 2010, 11:26
Lokalizacja: ~/

Post 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.
Monter08
Posty: 12
Rejestracja: 29 kwietnia 2011, 23:30

Post autor: Monter08 »

Tzn, co masz na myśli?
Awatar użytkownika
lessmian2
Member
Posty: 1088
Rejestracja: 30 kwietnia 2008, 19:38
Lokalizacja: Kraków

Post 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
ODPOWIEDZ