Nowe posty

xx Problem ze sterownikami. (5)
2024-04-13, 21:25:16
xx Instalacja xfce4 (2)
2024-04-13, 16:20:17
xx Serie kompilacji bez instalacji dla “emerge” w Gentoo (2)
2024-04-08, 18:40:04
xx Plasma 6 w Neonie ssie trochę mniej ... (17)
2024-04-05, 10:03:46
xx Problem z Linux Lite po instalacji (3)
2024-04-03, 14:23:40
xx Jak właczyć num locka przy starcie systemu debian 12? (12)
2024-04-02, 17:43:54
xx Brak dźwieku w systemie. (5)
2024-04-02, 16:13:41
xx Dystrybucja pod HP Omen (7)
2024-03-29, 11:33:05
xx [Poradnik] Wyszukiwanie Sterowników (2)
2024-03-27, 21:08:23
xx Ile pingwinów? (1)
2024-03-27, 08:59:24

Autor Wątek: Sed Edycja pliku i zapis do pliku  (Przeczytany 6803 razy)

Alkifron

  • Gość
Sed Edycja pliku i zapis do pliku
« dnia: 2013-05-09, 19:10:54 »
Witam

Proszę o podzielenie się ze mną wiedzą lub jakiś link, do informacji.
Nie za bardzo rozumiem dlaczego tak jest.

Powiedzmy, że mam pewną ilość plików w tych plikach są zmienne, które mają jakieś wartości np.:

wartość1=1
wartość2=2
wartość3=3

Teraz chcę, żeby wartość1 w tych plikach zamienić żeby nie była równa 1 tylko 10.
mogę sobie to zrobić np. tak:

sed 's/wartość1=1/wartość1=10/g' plik
to mi wypisze wynik na ekran.

Dlaczego nie działa

sed 's/wartość1=1/wartość1=10/g' plik>plik?
Mogę to zrobić jak to się mówi "na około"

cat plik >plik1
   cat plik1 |while read line
   do
   sed 's/wartość1=1/wartość1=10/g' plik1>plik

Chciałbym zapytać dlaczego nie działa:
sed 's/wartość1=1/wartość1=10/g' plik>plik?
Jak ewentualnie zrobić sobie taki mechanizm, żeby mi zamienił tą konkretną wartość w pliku i
zapisał do tego pliku.
No wiadomo, że jak będzie wiele plików to można zrobić pętle, pętla mi nie potrzebna, zrobię sobie sam.

Dzięki za pomoc.

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 3056
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
Sed Edycja pliku i zapis do pliku
« Odpowiedź #1 dnia: 2013-05-09, 20:15:31 »
1. filtr plik nie działa "by design" w systemach pochodzących od Unixa.
2. Aby uzyskać potrzebny ci efekt, dodaj do sed flagę -i (od inplace):
sed -i 's/wartość1=1/wartość1=10/g' plik
Paweł Kraszewski
~Arch/Void/Gentoo/FreeBSD/OpenBSD/Specjalizowane customy

polaken

  • Gość
Sed Edycja pliku i zapis do pliku
« Odpowiedź #2 dnia: 2013-06-25, 23:22:33 »
Dziękuję za odpowiedź. Miałem podobny problem, pomogło mi Twoje rozwiązanie.

_________________________________
Pozdrawiam, Adam
http://www.edom-nieruchomosci.pl