#sed najlepsze najnowsze

Boska_Klaudia 2026-01-11 16:48:13 +1
#programista15k

tak myślę że teraz nauka takich rzeczy jak #sed lub #awk co i tak nie były jakoś często używane no ale zdarzało się w świecie Linuksa to teraz w dobie AI już w ogóle nie ma sensu, modele są w stanie odgadnąć rozwiązanie w większości przypadków i nie ma sensu nad tym ręcznie siedzieć. Jakie to będzie mieć konsekwencje na przyszłość to już inny temat.
SystemFound 2026-01-11 22:41:40 +1
Do momentu, aż model nie zaproponuje ci rozwiązania z pobraniem paczki js-a z pierdyliard zależnościami do prostego rozwiązania,
Owszem AI pisze regexy jak szalone, ale nadal z tyłu głowy musisz mieć co chcesz mniej więcej użyć i jak.

https://www.npmjs.com/package/is-even ( ͡° ͜ʖ ͡°)
Boska_Klaudia 2026-01-11 22:44:17 +1
@SystemFound: ale ja tu pisałem o skryptach w shellu używanych głównie do helperów i wrapperów albo w build systemach, nie programowaniu w JS
vv32 2020-03-28 14:29:57 +0
#linux #awk #sed
Mireczki, mam do zrobienia takie zadanie:

"Z wyników zwracanych przez polecenie ifconfig wybierz informacje o adresie IP oraz adresie
MAC wszystkich aktywnych kart sieciowych. Informacje te zapisz do pliku interfaces.txt,
który powinien zawierać trzy kolumny: int_name, ip_address, mac_address a kazdy wiersz
opisywać określoną, aktywną kartę."

Moje pytanie jest takie, w jaki sposób mogę "wyciąć" informacje o adresie IP i MAC, a następnie przenieść do osobnego pliku przy pomocy awk lub sed?
secondreality 2020-03-28 14:39:23 +4
y.....m 2020-03-28 14:44:32 +1
@vv32: ziomek, to są podstawy podstaw. Przerob sobie jakiś kurs linuksa.
pokaż komentarze (4)
u.....8 2019-04-17 17:41:30 +2
#regexp #sed #awk #programowanie
Poproszę o pomoc z windowsowym (gnuwin32) awk/gawk/sed lub alternatywą pod windowsem.

Pliki z danymi wejściowymi mają format (przykładowy wiersz)
yzz-0000001000-v1000,"54,76","54,76",0,"54,76","54,76"
Chcę otrzymać
yzz-0000001000-v1000;54,76;54,76;0;54,76;54,76
czyli zmienić separatory między polami z przecinka na średnik, jednocześnie nie zmieniajac separatorów części ułamkowych.

Znalazlem w sieci sugestie regexpa
/(,)(?=(?:[^"]|"[^"]*")*$)/
i na testerze online jest ok, ale nie potrafię wyescapować tak by działało.
gawk "{gsub(/(,)(?=(?:[^\""]|\""[^\""]*\"")*$)/,\""x\""); print}" plikwejsciowy
nie zmienia nawet pierwszego przecinka.
Co robię źle?
Niestety przy tym zadaniu nie mam możliwości przesiadki na linuxa. Preferowane rozwiązanie nie zakłada instalacji pythona/perla/itp
u.....8 2019-04-17 18:07:10 +1
lub żeby się nie kopać z escapeami; plik ze skryptem dla awka zawierający
{gsub(/,(?=(?:[^"]*"[^"]*")*[^"]*$)/,"aaaaA");}1
aktualnie nie działa :-(
Oo-oO 2019-04-17 23:11:59 +0
Interesujące, ale racji obostrzeń (i drobnego wpływu wina które skonsumowalem ;)) sugeruję rozbicie po prostu na trzy przejscia, w pierwszym łap "\d+,\d+," jako grupę i zamieniaj drugi przecinek na srednik, w drugim [a-Z-0-9]*, by tez pierwszy srednik zalatwic w trzecim wiadomo, wywalic cudzyslowie. W tym stanie niestety to najlepsza podpowiedz jaka moga zaoferowac :)
@uhu8
cs16_pl 2018-10-12 13:27:59 +2
Czesc,
podsuniecie mi pomysl w jaki sposob moge uzyskac zamierzony efekt?

Dla uproszczonego testu mam sobie plik text.txt
`START_LINE
multi
line
string
MY_END_LINE
1
2
3
4
5
6`

Zalezy mi na tym aby wybrac zakres pomiedzy START_LINE a MY_END_LINE + 6 linii tekstu
Jak wiec zmodyfikowac ponizsze aby dolaczyc kolejne linie?
sed -n '/^START_LINE$/,/^MY_END_LINE/p' text.txt

Problem w tym ze moim jedynym pkt odniesienia w duzym pliku bedzie START_LINE oraz MY_END_LINE, jako ze 1-6 beda zawieraly adresy, ktore moga byc rozne.

Dzieki za ewentualna pomoc.

#bash #sed #regexp #programowanie
OperatorHydrolokator 2018-10-12 13:40:52 +0
@cs16_pl: a tych linii tam może być więcej niż6 ?
OperatorHydrolokator 2018-10-12 13:44:10 +0
@cs16_pl:
sed -n '/^START_LINE$/,/^MY_END_LINE/p;/^MY_END_LINE/{n;p;n;p;n;p;n;p;n;p;n;p}' plik.txt
pokaż komentarze (9)
i.....y 2018-07-02 19:48:18 +1
Mam takie coś w sed żeby zmieniać sobie config firefoxa z linii komend.

sed -i 's^user_pref("'$1'",.*);^user_pref("'$1'",'$2');^' user.js

`
root@92d87ffbe423:~/.mozilla/firefox/egtw4p6p.default# ./ffset.sh general.useragent.override '"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.37"'
sed: -e expression #1, char 103: unterminated `s' command
`

Jak tylko napotka na spację w argumencie to wywala mi takim błędem. Co zrobiłem nie tak?

#sed #linux #linuxmasterrace
KosmicznaKluska 2018-07-02 19:52:03 +0
@indywidualny spróbuj tak
sed -i '^user_pref("'$1'",.*);^user_pref("'$1'",'$2');^' user.js
i.....y 2018-07-02 19:55:48 +0
sed -i '^userpref("'$1'",.*);^userpref("'$1'",'$2');^' user.js

@KosmicznaKluska: Yh. Teraz wywala na tym delimiterze

sed: -e expression #1, char 1: unknown command: ^'`
pokaż komentarze (1)
dzaku 2018-02-03 15:46:31 +3
Rozlazły jednokomórkowiec #bash #gnuolot dal wszystkich aby mieć zawsze pod ręka sprawdzajkę kursu
bash <(curl -sS https://raw.githubusercontent.com/dzaczek/blogscripts/master/bcplot.sh)

wymaganiia #gnuplot #bash #awk #sed #linux :)
ulises 2018-02-03 16:01:58 +0
@dzaku: to trochę nierozsądne odpalanie w ciemno skryptu ściągniętego z sieci ( ͡° ͜ʖ ͡°)
cruc 2018-02-03 16:06:53 +0
@ulises:
szyfrowanie katalogów w toku, prosimy nie przeszkadzać
pokaż komentarze (1)
OperatorHydrolokator 2017-11-22 08:23:09 +2
Pany, trochę w nawiązaniu tego tematu https://www.wykop.pl/wpis/27972167/ziomale-mam-taki-tam-pliczek-wiersze-zaczynaja-sie/ . To sobie napisałem, okej. A jeśli temat zmodyfikujemy - chcę podzielić ten plik na podstawie zmiany pierwszego znaku w linii, bo powiedzmy, że indeksy nie zawsze zaczynają się od cyfra+000 i nie kończą na cyfra+999, czyli jak skrobnąć jakąś linijkę, która takie coś użre?
#sed #bash #skryptowanie #linux
Ex3 2017-11-22 08:38:38 +3
Ja bym to skryptem basha załatwił. Jak nie będzie za chwilkę odpowiedzi to tobie napisze. A spacje na początku lub odstępy ma ignorować?
Ex3 2017-11-22 09:08:39 +2
#!/bin/bash

FILE='test.file'


while read LINE
do
if [ "$LINE" = "" ]
then
continue
fi

FIRST_L="$(echo $LINE | head -c 1)"
echo $LINE >> $FIRST_L'.txt'

if [ "$FIRST_L" != "$OLD_L" ]
then
echo
fi

OLD_L=$FIRST_L

done < $FILE

Spóźniłem się :)
pokaż komentarze (2)
OperatorHydrolokator 2017-10-09 10:59:38 +1
#linux #bash #sed #programowanie
pany, jak odstawić taką sztukę: wyszukuję sobie pliku sedem + regexem potrzebny ciąg. konkretnie chodzi o kwotę, np: 1 234.56 (tu spoko) i chcę ją zastąpić tym samym, ale bez spacji. czyli 1234,56 (i tutaj już gorzej) Jak, bo mi się już głowa gotuje :}
msichal 2017-10-09 11:01:41 +0
([0-9]) ([0-9]{3}) zamieniasz na \1\2
OperatorHydrolokator 2017-10-09 11:04:40 +0
@msichal: możesz rozwinąć? Mam tak aktualnie (spacja na początku musi być ujęta):
sed 's/\(\s[0-9]\s[0-9]\{3\}\.[0-9]\{2\}\)//g'

edit: wykop zjada slashe
pokaż komentarze (2)
Camis 2016-06-15 00:27:55 +7
Kupiłem MX200, jako że szyfruję zawsze wszystkie dyski i ten zaszyfrowałem VeraCrypt.
 
Niestety spadek prędkości był o 50% na odczycie i zapisie sekwencyjnym. I ponad 10x razy wolniej na 4k-64thrd.
 
 
Po małym research-u okazało się że ten SSD wspiera standard Opal 2.0. Czyli SED - "Self-Encrypting Drive", czyli samo szyfrujące się dyski.
 
 
Tak wiec zamiast używać szyfrowania programowego lepiej włączyć sprzętowe. Nie tracimy nic na wydajności, szyfrowanie jest przezroczyste dla systemu itp. Można używać programów do partycjonowania, klonowania itp bez żadnego problemu. Jak również instalować dowolny system na dysku. 
 
 
Standardowo wszystkie dyski obsługujące Opal 2.0 maja włączone szyfrowanie domyślnie. Jedynie nie pytają o hasło przy uruchomieniu komputera. 
 
Programem sedutil ustawiamy własne hasło, i włączamy szyfrowanie tym naszym kluczem. Cała operacja trwa 2-3 sekundy, sedutil zainstaluje program rozruchowy w specjalnym miejscu na dysku zwanym Shadow MBR. Które to nie jest dostępne dla systemu. Komputer po uruchomieniu załaduję ten program zwany "PBA - pre-boot authorization". W którym to podajemy swoje hasło, po poprawnym podaniu hasła, komputer się zresetuje i dysk będzie normalnie dostępny.
Rozpocznie się ładowanie systemu, napęd będzie odblokowany do momentu odcięcia zasilania. Tak wiec możemy kompa resetować itp, i cały czas dysk będzie odblokowany. Po wyłączeniu komputera dysk dopiero się zablokuję. 
 
 
Opal 2.0 dostępny jest dla większości dysków Crucial, Samsung np 840/850 oraz kilku Intela, czy twój obsługuje musisz sprawdzić sam.
 
 
 
 
Więcej info:
 
 
https://vxlabs.com/2015/02/11/use-the-hardware-based-full-disk-encryption-your-tcg-opal-ssd-with-msed/ - Use the hardware-based full disk encryption of your TCG Opal SSD with msed
 
https://vxlabs.com/2012/12/22/ssds-with-usable-built-in-hardware-based-full-disk-encryption/ - SSDs with usable built-in hardware-based full disk encryption
 
https://en.wikipedia.org/wiki/Opal_Storage_Specification - Opal Storage Specification
 
https://en.wikipedia.org/wiki/Hardware-based_full_disk_encryption - Hardware-based full disk encryption
 
http://www.computerweekly.com/feature/Self-encrypting-drives-SED-the-best-kept-secret-in-hard-drive-encryption-security - Self-encrypting drives: SED the best-kept secret in hard drive encryption security
 
http://www.pcworld.com/article/3004670/business-security/self-encrypting-drives-are-hardly-any-better-than-software-based-encryption.html - Self-encrypting drives are hardly any better than software-based encryption
 
http://www.trustedcomputinggroup.org/self-encrypting-drives-sed-overview/ - Self-encrypting Drives (SED) Overview
 
http://www.trustedcomputinggroup.org/commonly-asked-questions-answers-self-encrypting-drives/ - Commonly Asked Questions and Answers on Self-encrypting Drives
 
http://www.storagereview.com/top_ten_reasons_to_buy_selfencrypting_drives_seds - Top Ten Reasons to Buy Self-Encrypting Drives (SEDs)
 
 
 
https://github.com/Drive-Trust-Alliance/sedutil/wiki - Sedutil   -   Narzędzie open-source po Windows / Linux które umożliwia włączenie szyfrowania własnym hasłem.

#SSD #szyfrowanie #bezpieczenstwo #opal #tcgopal #sed #pba #windows #windows10 #windows7 #truecrypt #veracrypt #sedutil
c9f24440e055136e5ee3dfa934d3933f 2016-06-15 09:00:13 +0
Camis 2016-06-15 15:19:32 +1
@c9f24440e055136e5ee3dfa934d3933f: Fakt, ale jak pisałem spadek szybkości u mnie był spory. Dysk jest zabezpieczony przed złodziejami itp. Ba nawet przed Polskimi agencjami, nawet jak były jakiś backdoor to przy błahych sprawach nikt tego nie wyda Polsce. Nie jestem jakimś terrorystą żebym się tym przejmował, chce zachować w miarę dobra prywatność. Ale i tak używam VeraCrypt na innych dyskach "magazynach". SED tylko jako systemowy.
pokaż komentarze (3)
S.....a 2014-11-23 13:32:56 +1
Używając programu Sed mam zamienić w pierwszych pięciu linijkach pliku tekstowego słowo "Faculty" lub "Faculties" na słowo "School" i wyświetlić te linijki. Wpiasłem:



sed -en '1,5s/Faculty/School/gp;1,5s/Faculties/School/gp' d.txt

i wyskakuje



sed: nie można odczytać 1,5s/Faculty/School/gp;1,5s/Faculties/School/gp: Nie ma takiego pliku ani katalogu

Co robię źle? Plik d.txt na pewno istnieje.



#linux #sed
S.....u 2014-11-23 13:40:02 +3
@SinusAlfa: Źle używasz przełączników. Powinno być:



sed -e '1,5s/Faculty/Shool/gp;1,5s/Faculties/Shool/gp' -n d.txt



albo



sed -n -e '1,5s/Faculty/Shool/gp;1,5s/Faculties/Shool/gp' d.txt
S.....u 2014-11-23 13:42:47 +1
@SinusAlfa: nie na końcu ale nie łączyć tego z -e czyli nie -en tylko -n -e
pokaż komentarze (4)