Szó cserélése enterre 'tr'-rel
Hogyan lehet szavakat cserélni enterre tr-rel?
tr "File" "\\n"nem jó mert így F,i,l,e betűk mindegyikére entert rak.
- Tovább (Szó cserélése enterre 'tr'-rel)
- 4896 megtekintés
Hogyan lehet szavakat cserélni enterre tr-rel?
tr "File" "\\n"nem jó mert így F,i,l,e betűk mindegyikére entert rak.
Udv!
Egy eleg komplikalt problemaval allok szemben amire nem talalom a megfelelo megoldast.
A problema alapjaban:
A cel egy weboldal letoltese percenkent, ami szep es egyszeru lenne wget-el. Ott kezdodnek a gondok, hogy az oldal elerese bejelentezest igenyel.
Jelenlegi megoldas:
Most egy eleg buta, de mukodo modszer van hasznalatban: Az oldalt behozom valami grafikus bongeszoben pl chrome, ott bejelentkezek aztan futtatok egy bonyolult scriptet percenkent amiben van wmctrl, xdotool stb. a lenyeg hogy a kepernyorol vagolapra helyezem az oldal tartalmat amit kiolvasok xclip-el ezt fajlba irom es elkezdek vele dolgozni egy c programmal. Innen latszik, hogy ezt hosszu tavon nem igazan lehet mukodtetni, foleg mivel kell neki az X.
Aztan eljutottam oda, hogy w3m-el is le tudom tolteni az oldal tartalmat, sokkal egyszerubben:
-w3m-el belepek
-betoltom egyszer az oldalt
-shift+s -> beirom a fajl nevet es mar lent is van
-varok 60 sec-et
-shift+r
-shift+s
-fajlnev beir
-varok 60 sec-et
...
ami santit, az az hogy amig X alatt egyszeruen csinalsz bill leuteseket xdotool-al addig ez nem olyan egyszeru console-on, konkretan barhol kerestem nem talaltam.
A kerdes tehat a kovetkezo:
-Hogyan toltesz le egy oldalt percenkent amihez bejelentkezes kell? (ha csak oldal forrast kapsz, az is jo, onnan kiszedem a lenyeges adatot).
Sziasztok!
Szeretnék elmélyedni a JavaScript nyelvben. Tudtok ajánlani olyan könyveket, oldalakat stb.-t, ahonnan meg lehet tanulni jól? Java/Scala fejlesztő vagyok, szeretném a JS-t úgy elsajátítani, hogy a JS szellemiségét, saját konstrukcióit, gondolkodásmódját is megértsem, ne csak olyan legyek aki Java-JavaScriptet ír.
Köszi,
M.
Sziasztok!
Saját log elemző írásán dolgozom. Egyelőre még csak annyi a célom, hogy a legtöbbet előforduló sorokat előfordulásuk gyakorisága szerint rendezzem. Ehhez azonos mintára kell hoznom -a külön erre a célra kigyűjtött, 1,3 GB-os- tűzfal logot: eltávolítani az időpecséteket, stb. és csak a hasznos üzenet részt hagyni meg. A formátum nagyjából megegyezik (csak a logolás szint tér el a vészesebb pontokat figyelő bejegyzéseknél).
Adott tehát a következő példa sor:
Feb 7 07:02:15 SERVER_NÉV kernel: [145088.358435] FW: INPUT_DROP IN=eth1 OUT= MAC=ff:ff:ff:ff:ff:ff:00:27:22:2c:12:91:08:00 SRC=akármi DST=akármi.255 LEN=96 TOS=0x00 PREC=0x00 TTL=128 ID=7043 PROTO=UDP SPT=137 DPT=137 LEN=76
Mit gondoltok, hogy lenne a legegyszerűbb eltávolítani a haszontalannak vélt információt, és a log bejegyzést csak a "FW: " utáni részt kiíratni??
- awk-val: a 7. blokk utáni rész kiíratása - megvalósítani csak felsorolással tudnám: 8,9,10, stb... de nem tudom mi lesz a vége... (ugyanis nem mindig egyezik a log üzi hossza)
- más tippem nincs
Köszönet, és Boldog Új Évet Nektek!
Üdv.:
V007
Sziasztok!
Elakadtam egy kicsit, de lehet nem is olyan bonyolult.
Van egy ilyen sorom:
grep -v -e "valami1" $file > $file2
Ez eddig működik is sőt, ha több az -e "" akkor is, viszont ebben a helyzetben akár több 100 is lehet belőle, ezért azt kellene megoldani, hogy az -e "" egy .txt-ből legyen beolvasva, ahol egymás alá fel van sorakoztatva az ami nem kell.
próbáltam `cat file.txt` megoldással, nem vezetett eredményre.
Any help?
Megoldás:
grep -v -f patterns source > file
Írtam egy package-t, ami szépen működik, de elég bénán építettem fel a hierarchiáját - import-ok keresztbe kasul és amúgy se mondható rendezettnek. Keresem a módot, hogy miként lehetne olyan package-t írni, ami egy másikba ágyazva is ugyanúgy működik, mintha csak egymagában használnám. Ez alapjába véve nem is lenne gond, de szeretném a közös cuccokat az __init__.py-be tenni és itt jön a probléma, ugyanis ha import pack-kal használom, akkor a pack.kozos_cucc néven elérem ezeket a függvényeket/változókat, viszont a from pack import * nem tölti be őket.
Persze, a válasz egyszerű, miért nem használom az első megoldást és minden elé kiírom a csomag nevét? Azért, mert a tkinter is az __init__.py-ben tárolja a legtöbb objektumát, mégis működik az import tkinter és a from tkinter import * egyaránt, tehát valszeg én vagyok képzetlen.
Mi a szabványos módja annak, hogy egy csomagon belül hivatkozzak a saját __init__.py-re, és hogy az abban található deklarációkat a main fájl a fent említett import módok közül bármelyikkel elérje?
EDIT:
Hogy gyakorlati példán is mutassam:
______________________________ KÖNYVTÁRSZERKEZET _____________________________
main.py
pack/
__init__.py
egyik.py
subpack/
__init__.py
masik.py
___________________________________ FÁJLOK ___________________________________
__ MAIN.PY ____________________________
import sys
import pack
import pack.egyik
import pack.subpack
import pack.subpack.masik
print( sys.modules[ __name__ ] )
print( pack.var )
pack.egyik.fgv()
print( pack.subpack.var )
pack.subpack.masik.fgv()
__ PACK/__INIT__.PY ___________________
import sys
__all__ = [ 'egyik' ]
var = sys.modules[ __name__ ]
__ PACK/EGYIK.PY ______________________
import sys
import pack
def fgv():
print( sys.modules[ __name__ ], pack.var )
__ PACK/SUBPACK/__INIT__.PY ___________
import sys
__all__ = [ 'masik' ]
var = sys.modules[ __name__ ]
__ PACK/SUBPACK/MASIK.PY ______________
import sys
import pack.subpack
def fgv():
print( sys.modules[ __name__ ], pack.subpack.var )
__________________________________ KIMENET ___________________________________
<module '__main__' from 'foo\main.py'>
<module 'pack' from 'foo\pack\__init__.py'>
<module 'pack.egyik' from 'foo\pack\egyik.py'> <module 'pack' from 'foo\pack\__init__.py'>
<module 'pack.subpack' from 'foo\pack\subpack\__init__.py'>
<module 'pack.subpack.masik' from 'foo\pack\subpack\masik.py'> <module 'pack.subpack' from 'foo\pack\subpack\__init__.py'
Az import tkinter és a from tkinter import * dolgot félreérthettem, mert a fenti példában mindkét módon működik az '__init__.py'-kben lévő deklarációk importálása.
Azt akarom elérni, hogy ha nem a 'main.py', hanem az 'egyik.py' a fő fájl, amiből indítoma progit, akkor is működjön az 'egyik' és a 'subpack' és mindkettő lássa a 'subpack/__init__.py'-ben deklarált változókat, osztályokat, függvényeket. Ehhez viszont az kell, hogy képes legyen dinamikusan importálni a saját '__init__' fájlját és a 'subpack'-ot is, mert ha ez nem így történne, az import pack.subpack-ot kézzel kéne átírni import subppack-ra és ez szerintem nem épp professzionális megoldás.
Szervusztok!
A kimeneti érték nálam az inicializálláskori. Ki érti ezt?
Mit gondolok rosszul? Kösz, vfero
(GNU bash, version 4.2.37(1)-release (x86_64-pc-linux-gnu), wheezy)
#!/bin/bash -u
mknod time p &>/dev/null
mknod rc p &>/dev/null
r="R"
t="T"
(time (echo "hello" &> rc) &> time) & (t=`cat time`) & (r=`cat rc`)
echo "rc: " $r " time: " $t
UPDATE:
Így kell az ilyet csinálni:
{ time (echo "hello" &> rc ; sleep 1) &> time ; t=`cat time` ; r=`cat rc` ; }
Kösz Zahy, a megoldást a kapcsos valóban nyújtja! ;)
UPDATE2:
Ez a megoldás csak a wheezy:amd64-n megy ahol fejlesztek, de a squeeze:i686 így nem szereti. :S
Sziasztok!
Ki tudnátok segíteni egy olyan szkripttel (bash v python), ami rekurzívan az adott könyvtár összes alkönyvtárában található fájlok/könyvtárak nevében kicseréli az ékezetes betűket nem ékezetesekre, és az olvashatatlan karaktereket aláhúzásjelre?
A problémám, hogy a fájlnevek egy más karakterkódolású szerverről lettek átemelve debian-ról ubuntura, és a a fájl nevekben mindeféle jelek, és kérdőjelek is keletkeztek.
Az eredeti állományhoz már nem lehet hozzáférni.
pl.: spir�lf�zet.txt --> spir_lf_zet.txt
pl Árvíztűrő_tükörfúrógép.txt --> Arvizturo_tukorfurogep.txt lesz
A következővel próbálkoztam, de sajnos nem cseréli le, csak annyit ír a fájlokhoz, hogy kihagyva:
#!/bin/bash
if [ $# -ne 1 ]
then
echo "***Használat: $programnev <útvonal>"
exit 1
fi
if cd "$1" 2>/dev/null
then
read -p "* Fájlok átnevezése a következö könyvtárban: $1 - mehet? (i/n)" valasz
[ $valasz != 'i' ] 2>/dev/null && exit 1
else
echo "***Hiba: a megadott könyvtár ($1) nem létezik."
exit 1
fi
counter=1
for betu in a e i o o o u u u A E I O O O U U U
do
ekezetnelkuli[$counter]="$betu"
counter=`expr $counter + 1`
done
for i in *
do
if [ `echo $i | grep -e '[^a-zA-Z0-9._]' | wc -l` -eq 0 ]
then
echo -e "*\t$i kihagyva"
continue
fi
counter=1
filename=$i
orig_filename=$filename
for j in á é í ó ö ő ú ü ű Á É Í Ó Ö Ő Ú Ü Ű
do
temp=`echo "$filename" | sed "s/$j/${ekezetnelkuli[$counter]}/g"`
filename=$temp
counter=`expr $counter + 1`
done
safefilename=`echo "$filename" | sed 's/[^a-zA-Z0-9._]/_/g'`
if [ ! -r "$safefilename" ]
then
mv -i "$i" "$safefilename" && echo " $orig_filename ---> $safefilename"
else
echo "***Hiba: a '$i' fájl nem nevezhető át, a fájlnév már létezik: $safefilename"
fi
done
Előre is köszönöm!
Megoldás ez lett:
convmv --notest -f latin2 -t utf8 -r /elérési/út
Sziasztok!
Adott egy konfigfájl amit letöltök egy iptelóról és persze, hogy nem utf8-ba kódolva :(
Ezt szeretném szkriptel átírni és így beállítani a többi telót, a szkript megvan ékezet nélküli nevekkel fasza, de ékezet is kéne, a gond a fránya kódolással van.
így néz ki debian alól vimmel megnyitva: https://www.dropbox.com/s/nc1opemjg6pklbu/encoding.jpg
win alól notepad++ból megnyitva: https://www.dropbox.com/s/i5sb35746dizg3d/encodingnotepad%2B%2B.jpg
Ez van oda írva:Fürész Nóra
A jelenlegi kódolást sem bírom behatárolni
Notepad++ szerint:ANSI
a file -i parancs szerint:charset=binary
Hogyan tudnám olyan kódolásban beilleszteni a neveket a scriptemmel a konfigban, hogy jó legyen a név?
Előre is köszönm.