Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: odfiltrování cesty k souboru, složce  (Přečteno 2931 krát)

Cuore

  • Závislák
  • ***
  • Příspěvků: 2534
odfiltrování cesty k souboru, složce
« kdy: 04 Května 2014, 16:26:01 »
Ahoj,
jak odfiltrovat absolutní cestu?
Mám např.
Citace
/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
Citace
programy
compiz.profile
fstab_desktop
programy.txt
ip.odf
.Apple
díky  ;)

Vojtěch Trefný

  • Příspěvků: 9307
  • Don Quijote
Re:odfiltrování cesty k souboru, složce
« Odpověď #1 kdy: 04 Května 2014, 16:35:07 »
Kód: [Vybrat]
echo "/media/Data/cuore/prográmky/programy" | rev | cut -d "/" -f 1 | rev

GdH

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 3176
    • GdH-Notes
Re:odfiltrování cesty k souboru, složce
« Odpověď #2 kdy: 04 Května 2014, 19:10:13 »
Kód: [Vybrat]
basename

Vojtěch Trefný

  • Příspěvků: 9307
  • Don Quijote
Re:odfiltrování cesty k souboru, složce
« Odpověď #3 kdy: 04 Května 2014, 19:11:25 »
Kód: [Vybrat]
basename

Sakra to je chytrý, to jsem neznal :)

GdH

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 3176
    • GdH-Notes
Re:odfiltrování cesty k souboru, složce
« Odpověď #4 kdy: 04 Května 2014, 19:15:20 »
:)
Nebo třeba oblíbený sed by byl taky jednodušší
Kód: [Vybrat]
sed 's/.*\///'

Cuore

  • Závislák
  • ***
  • Příspěvků: 2534
Re:odfiltrování cesty k souboru, složce
« Odpověď #5 kdy: 04 Května 2014, 19:22:23 »
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
Kód: [Vybrat]
        cnt=0
   while read SIN; do
        cnt=$[cnt+1]
basename $SIN >> cil.txt
   done < $HOME/zdroj.txt
každopádně díky oběma

GdH

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 3176
    • GdH-Notes
Re:odfiltrování cesty k souboru, složce
« Odpověď #6 kdy: 04 Května 2014, 19:42:25 »
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:

Kód: [Vybrat]
sed 's/.*\///' zdroj > výsledek
A pokud bys to opravdu chtěl počítat, tak můžeš nejjednodušeji výsledek prohnat přes
Kód: [Vybrat]
wc -l
A ještě mě napadlo:
Kód: [Vybrat]
grep -Eo '[^/]+$';)
« Poslední změna: 04 Května 2014, 19:50:43 od GdH »

Avogadrus

  • Návštěvník
  • Příspěvků: 77
Re:odfiltrování cesty k souboru, složce
« Odpověď #7 kdy: 05 Května 2014, 09:11:39 »
Pokud budeš mít ten textový soubor se seznamem tak stačí
Kód: [Vybrat]
echo ${line##*/} pro každý řádek
U12.04; jádro neznámé; XFCE 4.10

 

Provoz zaštiťuje spolek OpenAlt.