Sed (Stream EDitor) to edytor wiersza poleceń dla środowiska POSIX. Sed przetwarza jeden lub więcej plików zgodnie ze skryptem edycyjnym i zapisuje wyniki na standardowe wyjście. Stworzony w Bell Labs, istnieje od połowy lat 70.
Czy jest jakiś sposób na przekazanie informacji sedtylko wychwyconym grupom? Na przykład biorąc pod uwagę dane wejściowe: This is a sample 123 text and some 987 numbers i wzór: /([\d]+)/ Czy mogę uzyskać tylko dane wyjściowe 123 i 987 w sposób sformatowany przez odwołania zwrotne?
W obecnej formie to pytanie nie pasuje do naszego formatu pytań i odpowiedzi. Oczekujemy, że odpowiedzi poparte będą faktami, referencjami lub wiedzą specjalistyczną, ale to pytanie prawdopodobnie będzie wymagało debaty, argumentów, ankiet lub rozszerzonej dyskusji. Jeśli uważasz, że to pytanie można poprawić i ewentualnie ponownie otworzyć, odwiedź centrum pomocy w …
Z jakiegoś powodu nie mogę znaleźć prostej odpowiedzi na to pytanie i jestem w tej chwili trochę chwiejny. Jak mógłbym wstawić wiersz wyboru tekstu po pierwszym wierszu pasującym do określonego ciągu za pomocą sedpolecenia. Mam ... CLIENTSCRIPT="foo" CLIENTFILE="bar" Chcę wstawić linię po CLIENTSCRIPT=linii, co spowoduje ... CLIENTSCRIPT="foo" CLIENTSCRIPT2="hello" CLIENTFILE="bar"
Uruchamiam to polecenie, aby znaleźć i zastąpić wszystkie wystąpienia „jabłka” słowem „pomarańczowy” we wszystkich plikach w katalogu głównym mojej witryny: find ./ -exec sed -i 's/apple/orange/g' {} \; Ale nie przechodzi przez podkatalogi. Co jest nie tak z tym poleceniem? Oto kilka linii wyników find ./: ./index.php ./header.php ./fpd ./fpd/font …
Czy istnieje wywołanie sededycji miejscowej todo bez kopii zapasowych, która działa zarówno w systemie Linux, jak i Mac? Podczas gdy BSD seddostarczany z OS X wydaje się być potrzebny sed -i '' …, seddystrybucje GNU Linux zwykle zawierają interpretację cytatów jako pustą nazwę pliku wejściowego (zamiast rozszerzenia kopii zapasowej) i …
Załóżmy, że mam ciąg „abbc” i chcę zastąpić: ab -> bc bc -> ab Jeśli spróbuję dwóch zamień, wynik nie jest tym, czego chcę: echo 'abbc' | sed 's/ab/bc/g;s/bc/ab/g' abab Więc jakiej komendy sed mogę użyć do zamiany, jak poniżej? echo abbc | sed SED_COMMAND bcab EDYCJA : W rzeczywistości …
Poniżej znajduje się fragment skryptu powłoki z większego skryptu. Usuwa cudzysłowy z łańcucha przechowywanego przez zmienną. Robię to za pomocą sed, ale czy jest wydajne? Jeśli nie, to jaki jest skuteczny sposób? #!/bin/sh opt="\"html\\test\\\"" temp=`echo $opt | sed 's/.\(.*\)/\1/' | sed 's/\(.*\)./\1/'` echo $temp
grep -A1 'blah' logfile Dzięki temu poleceniu dla każdej linii, która zawiera „bla”, otrzymuję wynik linii zawierającej „bla” i kolejną linię, która następuje w pliku dziennika. Może to być proste, ale nie mogę znaleźć sposobu na pominięcie wiersza zawierającego słowo „bla” i wyświetlenie tylko następnego wiersza na wyjściu.
Chciałbym zaktualizować dużą liczbę plików źródłowych C ++ za pomocą dodatkowej dyrektywy include przed jakimkolwiek istniejącym #include. Do tego rodzaju zadań zwykle używam małego skryptu bash z sed, aby ponownie zapisać plik. Jak mogę sedzastąpić tylko pierwsze wystąpienie ciągu w pliku zamiast zastępować każde wystąpienie? Jeśli użyję sed s/#include/#include "newfile.h"\n#include/ …
Do tej pory udało mi się znaleźć sposób dodania wiersza na początku pliku, ale nie jest to dokładnie to, czego chcę. Pokażę to na przykładzie Zawartość pliku some text at the beginning Wynik <added text> some text at the beginning Jest podobnie, ale nie chcę tworzyć z nim żadnej nowej …
Czy jest jakieś polecenie bash, które pozwoli ci uzyskać n-ty wiersz STDOUT? To znaczy, coś, co by to wzięło $ ls -l -rw-r--r--@ 1 root wheel my.txt -rw-r--r--@ 1 root wheel files.txt -rw-r--r--@ 1 root wheel here.txt i zrób coś takiego $ ls -l | magic-command 2 -rw-r--r--@ 1 root …
Jeśli uruchomię te polecenia ze skryptu: #my.sh PWD=bla sed 's/xxx/'$PWD'/' ... $ ./my.sh xxx bla w porządku. Ale jeśli uruchomię: #my.sh sed 's/xxx/'$PWD'/' ... $ ./my.sh $ sed: -e expression #1, char 8: Unknown option to `s' Czytam w tutorialach, że aby zastąpić zmienne środowiskowe z powłoki, musisz przestać i …
Następujące polecenie poprawnie zmienia zawartość 2 plików. sed -i 's/abc/xyz/g' xaa1 xab1 Ale muszę dynamicznie zmieniać kilka takich plików i nie znam ich nazw. Chcę napisać polecenie, które odczyta wszystkie pliki z bieżącego katalogu, zaczynając od xa*i sedpowinno zmienić zawartość pliku.
Zmuszenie do używania CVS dla bieżącego klienta i zmiana adresu dla zdalnego repozytorium. Jedynym sposobem, w jaki mogę zmienić zdalny adres w moim lokalnym kodzie, jest wyszukiwanie rekurencyjne i zamiana. Jednak przy użyciu komendy sed spodziewałbym się, że zadziała: find ./ -type f -exec sed -i "s/192.168.20.1/new.domain.com/" {} \; Otrzymuję …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.