- Alacsony profilú, madzagmentes klaviatúrák jöttek a Razer színeiben
- ASUS ROG csúcslap érkezett, ezúttal a "lopakodó" fajtából
- Átvette a DRAM-piac trónját az SK Hynix a Samsungtól
- Pénztárcabarát, ugyanakkor trendi mikrotorony jött a Jonsbótól
- A Linux támogatását vágja meg leginkább az Intel leépítése
- Calibre, az elektronikus könyvtár
- VR topik (Oculus Rift, stb.)
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Egérpad topik
- Először égett le egy újságnál a GeForce RTX 5090
- Milyen belső merevlemezt vegyek?
- Kezdő fotósok digitális fényképei
- Nikon DSLR topik
- DDR4 vs DDR5 vs DDR6 – melyik kell neked?
Ú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
Hirdetés
- Milyen légkondit a lakásba?
- E-roller topik
- XPEnology
- Elektromos autók - motorok
- Samsung Galaxy A34 - plus size modell
- Samsung Galaxy S21 Ultra - vákuumcsomagolás
- Calibre, az elektronikus könyvtár
- Elemlámpa, zseblámpa
- VR topik (Oculus Rift, stb.)
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
- További aktív témák...
- Bomba ár! Lenovo ThinkPad L390 - i7-8GEN I 16GB I 512SSD I 13,3" FHD I HDMI I Cam I W11 I Gari!
- BESZÁMÍTÁS! Gigabyte H610M i3 12100F 16GB DDR4 512GB SSD RX 6600 8GB Zalman Z1 Plus ADATA 600W
- REFURBISHED - HP USB-C Universal Dock G1 docking station (DisplayLink)
- Microsoft Surface Laptop 5 13.5" i5-1245U 16GB 512GB 1év garancia
- Apple iPhone 8 64GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: FOTC
Város: Budapest