Portál AbcLinuxu, 15. července 2025 15:52
tady je nejaky text tady je nejaky text tady je nejaky text tady je nejaky text tady je nejaky text START tady je nejaky text tady je nejaky text STOP tady je nejaky text tady je nejaky texta ja potrebuji vypsat jen ten text co je mezi START a STOP, a nevim jak na to zousel jsem seda, ale nejak mi to neslo :( jak jsem trapil seda:
sed -e '1,/START:/d /STOP/,$d' < soubor sed -e '/START/,/STOP/p' < soubora jeste mnoho jsem toho zkousel ale radsi uz to sam psat nebudu, jinak me ukamenujete :)
$vypis = false; while (<>) { if (/^START$/) { $vypis = true; } elif (/^STOP$/) { $vypis = false } elif ($vypis){ print $_; } }v perlu moc nepisu, takze to asi bude chtit par korektur...
sed '1,/^START$/d;/^STOP$/,$d' soubortak to vse funguje jak ma, ale kdyz tento cely prikaz dam jako promenu
BLEEE=`sed '1,/^START$/d;/^STOP$/,$d' soubor`a pak to chci vypsat, tak to sice funguje, ale vsechno mi to vypise na jeden radek, a ne tak jak to bylo na tom puvodnim textu.... nevite proc?
man bash
$(command) or `command` Bash performs the expansion by executing command and replacing the com- mand substitution with the standard output of the command, with any trailing newlines deleted.
man bash /^QUOTING
echo "$promenna"
blee blee START ahoj cuz STOP blee bleea ja potrebuju "vykuchat" to ahoj cuz a dat to pozdeji to pouzit v FOR cyklu, timto "vykucham" to "ahoj" a "cuz"
sed '1,/^START$/d;/^STOP$/,$d' soubora pak potebuju tu promenou vypsat,
BLEEE=`sed '1,/^START$/d;/^STOP$/,$d' soubor` echo $BLEEEale tohle mi to vypise:
vangroff@snehurka:~/do_something > ./exec ahoj cuzale ja potrebuji aby to vypsalo takhle:
vangroff@snehurka:~/do_something > ./exec ahoj cuzPS: mooc, prosim... poradte! lol
SOUBOR=`sed '1,/^START$/d;/^STOP$/,$d' soubor` for i in $SOUBOR;do echo "neco tu je: $i" donechapete? mozna to neni az tak moc srozumitelne, ale ja to proste potrebuji dat do promene.... :)
sed ... | while read do ... donenebo
sed ... | xargs ...Prostě do proměnné to nepotřebujete
DATA=`sed '1,/^START$/d;/^STOP$/,$d' test` for X in `echo "$DATA"`; do a je to tu: $X donea to funguje.... PS: nebo to je zase spatne? (treba neprogramatorsky) :), programatornejsem , tak to neprogramatorsky muze bejt :)
neco START ps aux uname -a STOP necoja toho potrebuju vypsat, no spise spustit ten prikaz, a ten jeho vysledek nekam vypsat, nejlepe do souboru ... co ted? takhle jsem to zkousel ja:
sed '1,/^START$/d;/^STOP$/,$d' test | while read x; do "$x"; doneto nejde! napise to toto:
vangroff@snehurka:~/do_something > ./exec ./exec: line 41: ps aux: command not found ./exec: line 41: uname -a: command not founda to jako vybec nechapu ...
sed '1,/^START$/d;/^STOP$/,$d' test | sh
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.