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.
Jak wstawić nową linię przed wzorcem w linii? Na przykład spowoduje to wstawienie nowej linii za wzorcem wyrażenia regularnego. sed 's/regex/&\n/g' Jak mogę zrobić to samo, ale przed wzorem? Biorąc pod uwagę ten przykładowy plik wejściowy, wzorcem do dopasowania jest numer telefonu. some text (012)345-6789 Powinno stać się some text …
Załóżmy, że mam plik z liniami aaa = bbb Teraz chciałbym je zastąpić: aaa = xxx Mogę to zrobić w następujący sposób: sed „s / aaa = bbb / aaa = xxx / g” Teraz mam plik z kilkoma wierszami w następujący sposób: aaa = bbb aaa = ccc aaa …
Mam plik tekstowy, w którym niektóre słowa są wydrukowane WIELKIMI LITERAMI. Chcę móc po prostu przekonwertować wszystko w pliku tekstowym na małe litery, używając sed. Oznacza to, że pierwsze zdanie brzmiałoby wtedy: „Mam plik tekstowy, w którym niektóre słowa są drukowane wielkimi literami”.
Chcę pobrać dwie ostatnie liczby (jedną int, jedną zmiennoprzecinkową; po której następuje opcjonalna spacja) i wypisać tylko je. Przykład: foo bar <foo> bla 1 2 3.4 Powinien wydrukować: 2 3.4 Jak dotąd mam: sed -n 's/\([0-9][0-9]*[\ \t][0-9.]*[\ \t]*$\)/replacement/p' da mi foo bar <foo> bla 1 replacement Jeśli jednak spróbuję zastąpić …
Próbuję wyprowadzić ciąg, który zawiera wszystko między dwoma słowami ciągu: Wejście: "Here is a String" wynik: "is a" Za pomocą: sed -n '/Here/,/String/p' zawiera punkty końcowe, ale nie chcę ich uwzględniać.
Piszę skrypt powłoki dla wbudowanego Linuksa w małym przemysłowym pudełku. Mam zmienną zawierającą tekst pid: 1234i chcę usunąć pierwsze X znaków z linii, więc pozostaje tylko 1234. Mam więcej zmiennych, które muszę „wyczyścić”, więc muszę wyciąć X pierwszych znaków iz ${string:5}jakiegoś powodu nie działa w moim systemie. Wydaje się, że …
Jak wyszukiwać i zamieniać całe słowa za pomocą seda? Robić sed -i 's/[oldtext]/[newtext]/g' <file> zastąpi również częściowe dopasowania, [oldtext]których nie chcę, aby robił.
Za pomocą awklub sedjak mogę wybrać linie, które występują między dwoma różnymi wzorami znaczników? Może być wiele sekcji oznaczonych tymi wzorami. Na przykład: załóżmy, że plik zawiera: abc def1 ghi1 jkl1 mno abc def2 ghi2 jkl2 mno pqr stu Wzorzec początkowy to, abca wzór końcowy to mno Więc potrzebuję wyniku …
Mam następujące dane i muszę to wszystko umieścić w jednym wierszu. Mam to: 22791 ; 14336 ; 22821 ; 34653 ; 21491 ; 25522 ; 33238 ; Potrzebuję tego: 22791;14336;22821;34653;21491;25522;33238; EDYTOWAĆ Żadne z tych poleceń nie działa idealnie. Większość z nich pozwala, aby dane wyglądały następująco: 22791 ;14336 ;22821 ;34653 …
Mam prosty skrypt powłoki, który usuwa końcowe spacje z pliku. Czy istnieje sposób, aby ten skrypt był bardziej zwarty (bez tworzenia pliku tymczasowego)? sed 's/[ \t]*$//' $1 > $1__.tmp cat $1__.tmp > $1 rm $1__.tmp
Uruchomiłem seda, aby dokonać podmiany w systemie Windows i zauważyłem, że automatycznie konwertuje on zakończenia linii na Uniksa (\ n). Czy jest opcja, aby powiedzieć sedowi, aby używał zakończeń linii Windows (\ r \ n) lub nawet lepiej, aby zachować końce linii z pliku? Uwaga: używam seda z unxutils: http://unxutils.sourceforge.net/
Mam plik, który wygląda tak: AE United Arab Emirates AG Antigua & Barbuda AN Netherlands Antilles AS American Samoa BA Bosnia and Herzegovina BF Burkina Faso BN Brunei Darussalam Chciałbym odwrócić kolejność, drukując najpierw wszystko oprócz 1 $, a potem 1 $: United Arab Emirates AE Jak mogę zrobić sztuczkę …
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.