Fórum Ubuntu CZ/SK
		Ubuntu pro osobní počítače => Software => Příkazový řádek a programování pro GNU/Linux => Téma založeno: tomaskCZ  23 Května 2008, 12:01:38
		
			
			- 
				Tailovanim souboru vznikleho programem script se mi dostava do promnenych tento specialni znak, ktery je normalne neviditelny,lze ho nejakym keycode vyradit jako treba mezeru ?
Podobny problem mam i u zachytavanych vypisu VT100 terminalu :)
			 
			
			- 
				prozrad vic. nechapu problem .. uka na prikladu
			
 
			
			- 
				
tady je vystupni soubor, rozbal ho a podivej se dovnitr vi, nebo jinym zpusobem, ktery odhali specialni znaky
http://web.iol.cz/tomkcz/2008-05-23.ssh.dd.log.zip
soubor se vytvari jako vystup tohoto prikazu
gnome-terminal --geometry=110x40+200+200 --window-with-profile=blue -x script -a $log -c "/usr/bin/ssh $1" #2>error.txt"
ja pak resim treba 
ifxx=`tail -3 ~/2008-05-23.ssh.nn.log | sed -n '1p' | awk '{ print $3$4$5$6$7}'`
if [ ${ifxx%% *} = 'Nameorservicenotknown' ];then
........
jenze se mi to nikdy s nicim neporovna, prootoze se mi do toho michaji ty '^M' znaky
			 
			
			- 
				nevim, jak se Ti dari ony znaky, ale me to funguje s nasledujicim vyrazem ::
cat 2008-05-23.ssh.dd.log | sed '/^ssh:/!d;s/^.*://;s/\s//g' | tail -n 1
takze ::> ifxx=`cat 2008-05-23.ssh.dd.log | sed '/^ssh:/!d;s/^.*://;s/\s//g' | tail -n 1` && if [ "${ifxx%% *}" = 'Nameorservicenotknown' ];then echo ok; else echo failed; fi
ok
ad.1) nac tahle "${ifxx%% *}" hruza? nestaci "$ifxx" ??
			 
			
			- 
				znaky se tam dostanou z prikazu script, ktery pouzivam k logovani session, protoze gnome-terminal to sam o sobe neumi. Ta hruza je tam z pokusu kdy jsem zkousel odstranit mezery jestli se tam nedostavaji.
tvuj postup funguje, nicmene budu si muset vzit manual k sedu to presne polustit, dik
			 
			
			- 
				/^ssh:/!d; // emulace grepu. vypisujeme pouze radky zacinajici ssh
             s/^.*://; // nahradime nicim vse od zacatku radku po posledni ':' 
                       s/\s//g // nahradime globalne nicim vsechny prazdne znaky (\s)
ad.2) manual k sedovskym RE najdes jako ::
man perlre
man perlreref // pripadne jako 'man perlrequick || man perlretut'
			 
			
			- 
				supr, nasel jsem ty ruzne     \w \W \s \S \d \D na http://perldoc.perl.org/perlre.html
umel by jsi take vyresit odstraneni pouze toho ^M na konci radky ?
Sbiram data z jednoho vt100 terminalu expect skriptem, necham ukladat do souboru a na konci kazde radky je ^M, porad mi nevychazi jak toho zmetka presne zacilit,  \s potazmo \W funguji, ale vezmou sebou vsechny mezery a znaky.
To ^M bude asi nejake odrolovani, ci co, rozhodi to pak treba i terraterm pri zobrazovani.
			 
			
			- 
				Tady tenhle znak se objevuje, pokud soubory pouzivaji dosovske zakonceni radku (CR+LF), zatimco unix pouziva pouze LF (nebo ten druhej, sakra). Na prevadeni souboru mezi temato dvema formaty slouzi napr. programy unix2dos nebo dos2unix. Takze otazka? Mohou se ti v tom souboru nejak objevit dosovske konce radku?
			
 
			
			- 
				nemeli by, prvni pripad je linux a ssh zachytavane pres script (man script), 
                  tzn. lze zkusit normalne z prikazovy radky v ubuntu     '/usr/bin/ssh (nejaky nedostupny cil) 2>chyba.txt'
                   a v souboru chyba.txt je na konci ^M ( neni to viditelny znak, nutno pouzit nejaky editor) , takze to prijde z ssh
               druhy pripad je z unixu na vt100 terminal (seriovy port), 
asi vec, jak jde ktery vystup z aplikace, ale v tomto pripade se to dosu nikde ani nedotkne
pravda je, ze predani dale na do2unix to odstrani a je to vyresene
/usr/bin/ssh dd 2>&1 | dos2unix > chyba.txt
ale v sedu mi to prijde ponekud necilovatelne :)
			 
			
			- 
				tak na to koukam a taky mi to dela. asi to bude zpusobeno programem ssh.