Nowe posty

Autor Wątek: Sed Edycja pliku i zapis do pliku  (Przeczytany 6819 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: 3066
  • 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