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: Cuore  04 Května 2014, 16:26:01
		
			
			- 
				Ahoj,
jak odfiltrovat absolutní cestu?
Mám např.
/media/Data/cuore/prográmky/programy
/media/WDmyLive/Software/zalohy/Desktop/compiz.profile
/media/WDmyLive/Software/zalohy/Desktop/fstab_desktop
/media/WDmyLive/Software/zalohy/programy.txt
/home/cuore/Dokumenty/ip.odf
/media/WDmyLive/Software/.Apple
a výsledek by měl vypadat
programy
compiz.profile
fstab_desktop
programy.txt
ip.odf
.Apple
díky  ;)
			 
			
			- 
				
echo "/media/Data/cuore/prográmky/programy" | rev | cut -d "/" -f 1 | rev
			 
			
			- 
				
basename
			 
			
			- 
				
basename
Sakra to je chytrý, to jsem neznal :)
			 
			
			- 
				:)
Nebo třeba oblíbený sed by byl taky jednodušší
sed 's/.*\///'
			 
			
			- 
				sakra kam na to chodíte  :) s tím sedem jsem se mordoval, ale nějak  ::)
nicméně pokud budu mít textový dokument s odkazy, tak pomocí while read bych si vyčítal řádky a ten basename je moc krásný. Takhle by to šlo? je to jen nástřel
        cnt=0
   while read SIN; do
        cnt=$[cnt+1]
basename $SIN >> cil.txt
   done < $HOME/zdroj.txtkaždopádně díky oběma
			 
			
			- 
				S tím sedem je to jen o pochopení regulárních výrazů:
cesta je dělená lomítky a regulární výrazy jsou žravé -> tudíž .*/ se zastaví až na posledním lomítku na řádku.
Jinak by ti místo while/read stačil ten sed:
sed 's/.*\///' zdroj > výsledek
A pokud bys to opravdu chtěl počítat, tak můžeš nejjednodušeji výsledek prohnat přes
wc -l
A ještě mě napadlo:
grep -Eo '[^/]+$';)
			 
			
			- 
				Pokud budeš mít ten textový soubor se seznamem tak stačí 
echo ${line##*/} pro každý řádek