- iPhone topik
- Samsung Galaxy A54 - türelemjáték
- Apple iPhone 15 - a bevált módszer
- Yettel topik
- Google Pixel 10 és 10 Pro összehasonlító gyorsteszt
- Milyen okostelefont vegyek?
- Apple iPhone 17 - alap
- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Fotók, videók mobillal
Új hozzászólás Aktív témák
-
vargalex
félisten
Érdekes, mert mennie kell a sed-es megoldásnak:
[gavarga@gavarga-5500 test]$ echo "Áuu, hosszú: ú" > forras.txt
[gavarga@gavarga-5500 test]$ sed 's/./\0\n/g' forras.txt
Á
u
u
,
h
o
s
s
z
ú
:
ú
A file is biztosan UTF-8-as? Mit mond nálad a
file forras.txt
(vagy esetedben, ha file a forrás állomány neve a
file file
) parancs?Ezt kellene, hogy visszaadja:
[gavarga@gavarga-5500 test]$ file forras.txt
forras.txt: Unicode text, UTF-8 text
Szerk: egyáltalán GNU sed-et használsz? Nem valami embedded rendszeren lévőbusybox
-os sed-et? -
Ez a GNU cut bugja: a -c-t pont úgy kezeli, mint a -b-t, vagyis annak ellenére, hogy elvileg kellene neki, valójában egyáltalán nem támogatja a multibyte karaktereket.
Szerencsére a bash maga is tud vagdosni stringeket és az rendesen csinálja:#! /bin/bash
for i in {0..49}
do
cat file | while read ; do
echo ${REPLY:$i:1}
done
done
exit
-
Headless
őstag
Hát vagy find-al keresed meg és futtatod amit kell
find $x -type f -exec ....
vagy
a meglévő for ciklusba teszel egy ellenörzést hogy fájl-e...
valahogy ígyif [ -f "$file" ];then
echo "file"
fiha van printf parancsod, akkor megfelelő számú szóközt tudsz csinálni valahogy így. azt meg kicserélheted #-re de szerintem nem éri meg, lehet van jobb megoldás is.
printf "%33s" |sed "/ /#/g"
-
bambano
titán
felejtsd el ezt a hétfő ellenőrizgetést.
nem az a jó módszer, hogy elindítod minden nap, és megnézed, hétfő van-e, hanem az, hogy csak hétfőn indítod el.a hozzáfűzés meg lehet, hogy azért nem megy, mert könyvtár vagy könyvtárra mutató link is van az írásos könyvtárakban.
-
Headless
őstag
-
Headless
őstag
Szimplán $0 helyett $1,$2,$3 stb-ket használsz, persze a field separator nem mindegy, hogy ; szóköz vagy mi. Pl
Fájl:
11;12;13;14
21;22;23;24awk -F";" '{print $3}' path
13
23Persze a field separatort magában az awk-ban is tudod változtatni az FS változóként ahogy a kimeneti elválasztót is az OFS-t.
-
"a sed-el lecseréltem a "."-t vesszőre a file-ben"
Ahelyett inkabb ajanlanam a script elejere a kovetkezo sort:
export LC_NUMERIC="C"Ez fixen beallitja a locale-t egy mindenhol meglevo darabra, ahol tizedespont van, ha viszont fixen lecsereled a pontot vesszore, az nem fog mukodni akkor, ha pontot hasznalo locale-lel akarod futtatni.
"Nekem kerekítés nélkül kell."
Akkor vagd le a felesleges tizedesjegyeket mielott atadnad a printf-nek (a printf jelen esetben csak azert kell, hogy a kettonel kevesebb tizedesjegyet tartalmazo szamok vegere is odarakja oket, vagyis hogy az 5-bol 5.00 legyen)
X=4.12812
printf '%02.f\n' $(echo $X | sed 's/\(\...\).*$/\1/') -
Egeszen pontosan mit akarsz? Tenylegesen ilyen ertekre kerekiteni a szamot vagy csak kiiratni az elso ket tizedesjegyet vagy ket tizedesre kerekiteni es ugy kiiratni?
Ha az elso ketto az erdekes, akkor a printf a legegyszerubb (az elso a kerekites, a masik a kerekitve kiiratas):
X=4.4789
Y=$(printf '%0.2f' $X)
printf '%0.2f\n' $X -
-
bambano
titán
alapvetően több lehetséges megoldás van, mind a find-en alapszik.
vagy megkeresteted az összes könyvtárat:find kezdokonyvtar -type d
és ezeket feldoldoztatod a w3m-mel csillagozva, vagy megkeresteted az összes html fájlt adott könyvtártól lefelé, és ezeket egyesével dolgozod fel:
find kezdokonyvtar -name '*.html'
-
makro
senior tag
Picit másként:
echo "Összes szám: "; sed 's/ /\n/g' text.file| grep "^[0-9]";echo;
echo "Egész számok: "; sed 's/ /\n/g' text.file | grep "^[0-9]*$";echo;
echo "Kétjegyű egész számok: "; sed 's/ /\n/g' text.file | grep "^[0-9][0-9]";echo;
echo "Tört számok: "; sed 's/ /\n/g' text.file | grep "^[0-9]*[,].[0-9]*";echo;
echo "Szavak: "; sed 's/ /\n/g' text.file | grep "^[a-zA-Z]*$";echo; -
Jester01
veterán
Nem teljesen tiszta mit szeretnél, de első tippem ez: sed -n "2,${g}p"
Másik kérdésre: igen, meg lehet adni regexet, ami alapesetben a szónak is megfelel ha éppen nincs benne speciális karakter. A szavakat perjelek közé kell tenni vagy az alternatív \c...c delimitációt használni. Tehát sed -n '/ettől/,/idáig/'
-
Jester01
veterán
Megfelelő locale beállítás mellett elvileg az alnum osztályban benne kell legyenek az ékezetes betűk is. Ha nem, akkor fel kell őket sorolni. Az aposztrófot pedig úgy a legegyszerűbb beletenni ha dupla idézőjelre váltunk:
sed "s/[[:alnum:]']//g; s/\(.\)/\1\n/g" abc | sort -u
-
bambano
titán
ja, látom már, neked nem az a problémád, hogy hosszú a szám, hanem az, hogy a gnumeric nem veszi észre, hogy tizedespontot használtál tizedesvesszőnek. A tizedespontot a magyar nyelv szabályai szerint ezres elválasztónak tekinti.
próbáld meg ideiglenesen angolra átállítani a linuxodat és úgy importálni. vagy próbáld meg libreoffice-vel az importot. -
bambano
titán
mondom, nem fork bombázunk
a sed másik jó tulajdonsága, hogy a keresés-csere parancsokban nem fixen bedrótozva / jel van, hanem az első karakter a delimiter az s után. ezt akkor érdemes használni, ha vagy a mintában, vagy a cserélendő stringben van (sok) /
tehát:
grep '<title>' |
sed -e 's,^.*<title>[ ]*,,' -e 's,[ ]*</title>.*$,,' >> $d/title.txt -
snowdog
veterán
Az LF az a soremelés vezérlés. Ha kitörlöd, akkor mindent egybe fog írni. Normál szövegnézetben nem jelenik meg. Gondolom valamit bekapcsoltál hogy láthatóvá vált.
Amit alul írtál mintát, az pont ugyan az, ugyanis ott is szerepel az LF (Line Feed, soremelés), csak nem látod.
Új hozzászólás Aktív témák
- AKCIÓ! Jogtiszta Windows - Office & Vírusirtó licencek- Azonnal - Számlával - Garanciával - Nint.hu
- Keresem az alábbi PC játékokat! (Teljes lista a leírásban!)
- PC Game Pass előfizetés
- Kaspersky, BitDefender, Avast és egyéb vírusírtó licencek a legolcsóbban, egyenesen a gyártóktól!
- Bitdefender Total Security 3év/3eszköz! - Tökéletes védelem, Most kedvező áron!
- Telefon felvásárlás!! Apple iPhone 16, Apple iPhone 16e, Apple iPhone 16 Plus, Apple iPhone 16 Pro
- ÁRGARANCIA!Épített KomPhone i7 14700KF 32/64GB RAM RTX 5080 16GB GAMER PC termékbeszámítással
- 14" Dell Latitude laptopok: 5400, 5480, 5490, 7480, E6410, E6440, E5450 / SZÁMLA + GARANCIA
- HIBÁTLAN iPhone 13 256GB Pink -1 ÉV GARANCIA - Kártyafüggetlen, MS3421
- BESZÁMÍTÁS! ASUS ROG STRIX Z390-H GAMING alaplap garanciával hibátlan működéssel
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest