Hirdetés
- Huawei P30 Pro - teletalálat
- Az iPhone 17 gáncsolta el a Galaxy S26 Prót?
- Google Pixel topik
- iPhone topik
- Samsung Galaxy S20 és S20+ duplateszt
- Huawei Mate 10 Pro - mestersége az intelligencia
- Xiaomi 15T Pro - a téma nincs lezárva
- Xiaomi 15T - reakció nélkül nincs egyensúly
- Xiaomi 14T Pro - teljes a család?
- Poco X6 Pro - ötös alá
Új hozzászólás Aktív témák
-
vargalex
félisten
válasz
beloadjoker
#2142
üzenetére
Szia!
Én ezt tenném:
cat a | sed 's/\b19\([0-9]\{2\}\)\b/20\1/g'
-
ZCoyote
őstag
válasz
beloadjoker
#2145
üzenetére
Köszi!
-
Headless
őstag
válasz
beloadjoker
#2143
üzenetére
Hát ez egy összetetteb ha így mindenre gondolni kell...
Első körben vegyük azokat amik a sor közepén helyezkednek el, 4 szám egymás után, előtte utána bármi ami nem szám, az már évszám
sed "s/\([^0-9]\)\(19\)\([0-9]\{2\}[^0-9]\)/\120\3/g" /evszam.txt
Előtte nincs semmi (sorkezdés) utána van bármi ami nem szám.
sed "s/^\(19\)\([0-9]\{2\}[^0-9]\)/20\2/" /evszam.txt
Előtte bármi ami nem szám, utána semmi (sorvég).
sed "s/\([^0-9]\)\(19\)\([0-9]\{2\}\)$/\120\3/" /evszam.txt
előtte utána semmi (csak az évszám van).
sed "s/^\(19\)\([0-9]\{2\}\)$/20\2/" /evszam.txt
Persze ezt besűrítheted egy nagy átláthatatlan parancsba.
sed "s/^\(19\)\([0-9]\{2\}\)$/20\2/;s/\([^0-9]\)\(19\)\([0-9]\{2\}\)$/\120\3/;s/^\(19\)\([0-9]\{2\}[^0-9]\)/20\2/;s/\([^0-9]\)\(19\)\([0-9]\{2\}[^0-9]\)/\120\3/g" /evszam.txt
Minden eshetőségre könnyebbet nem találtam. Persze a szövegelválasztókat cserélheted bármi másra. [^0-9] hogy ne ugorjon bármire, ami nem szám. pl nem szám és nem betű. [^0-9a-zA-Z] vagy csak szóköz és vessző [ ,]
Az &&-el óvatosan, ha mindenképp le kell futni, mert ha így adod ki, akkor csak akkor fog lefutni, ha az első parancs lefutott és a return értéke 0.
vagyis ha mondjuk grep nem talál semmit akkor nem fog végrehajtódni a && után jövő parancs. Ha már 1 sorba kell tömöríteni használjuk a ";"-et parancsok elválasztásához.
-
Headless
őstag
válasz
beloadjoker
#2139
üzenetére
Ez attól függ mi a környezet, az évszámok utáni részt is rakd be a \2-be. szóköz, end line, field separator, stb az 19 elé meg szintén berakhatod ezeket.
Viszont én a te megoldásodon annyit javítanék, hogy a 19 után nem engedném hogy 0-9 legyen mert akkor az 1993-at is át fogja írni, ami valószínű nem elírás... Ezért én maximum [0-1][0-9]-et engednék meg. Még ígyis 2019-ig fogja változtatni
Szerk: azért elég furcsa egy adatbázis ez... Semmi rendszeresség...
-
spammer
veterán
válasz
beloadjoker
#2139
üzenetére
$ cat evszamok.txt
1908
1922
1938
1522
2012
$ awk '/^19[0-9]{2}$/{sub("19","20");print}' evszamok.txt
2008
2022
2038Biztos van egyszerűbb megoldás is, de nekem most még korán van, elsőre ez jött.

-
beloadjoker
őstag
válasz
beloadjoker
#2138
üzenetére
Hali srácok ezt szeretném megcsinálni:
Elírás történt egy fájlban. Hogyan cserélné le a 19-cel kezdődő évszámokat 20-val kezdődőre. (évszám 4 karakter!):
pl.:1908 --> 2008sed 's/\(19\)\([0-9][0-9]\)/20\2/g' a
Az a bajom hogy nem csak a 4 számból állókat írja át szóval szerintem be kéne szúrni valahova ezt: {4} de nem sikerül, tudnátok segíteni?

-
Headless
őstag
válasz
beloadjoker
#2136
üzenetére
jah most nézem akkora ellentmondás van a field numberes szűrésemben...

nagyobb 2-nél és kisebb 3-nál...
mindegy a lényeget gondolom értetted. -
Headless
őstag
válasz
beloadjoker
#2134
üzenetére
awk '/^[A-Z][a-z]+ [A-Z][a-z]+/{print "Sorszám: "NR" szavak száma: "NF" "$2" "$1}'
Persze az még mindig kérdéses mi van a 3 nevűekkel. ott a 3.-kat elveszted vagy simán kiprinteled, a 3.-kat is.
Idézőjel azért kell, hogy a print tudja hogy nem változót akarsz használni, hanem egyszerű stringet.
ahogy látszik a mintában vannak beépített változók awk-ban, azokat használhatod
googleben hamar megtalálhatod őket.[link]Vagy esetleg még a filed numberre is szűrhetsz
awk 'NF>2&&NF<3&&/^[A-Z]/{print ....}'
mondjuk persze mindig lehet finomítani.
-
spammer
veterán
válasz
beloadjoker
#2132
üzenetére
Valami ilyesmi esetleg:
awk '/^[A-Z]+/{print $2" "$1}'
szerk: és a $2 és $1 ugye két mezőt printel, ha valakinek 3 részből áll a neve (pl. Kiss Elemér Géza), akkor az bukta, erre figyelj majd.
-
spammer
veterán
válasz
beloadjoker
#2130
üzenetére
Te írtad a regexet, én csak beraktam awk-ba. Ha csak simán nevek vannak a fájlban felsorolva egymás alá, akkor nem is kell. Például:
$ cat nevek.txt
Kiss Béla
Nagy Józsi
Takács Endre
$ awk '{print $2" "$1}' nevek.txt
Béla Kiss
Józsi Nagy
Endre TakácsA " " az egy szóköz, különben ez lesz:
awk '{print $2 $1}' nevek.txt
BélaKiss
JózsiNagy
EndreTakácsszerk: a házi feladat többi rész rád vár.
Sok példa van neten, meg tutorialok is, nulláról nem írja meg helyetted senki, főleg konkrét példa/feladat nélkül. 
-
spammer
veterán
válasz
beloadjoker
#2128
üzenetére
Felesleges a cat és a grep. awk érti a regexet és tud bementeni fájlt olvasni.
Valami ilyesmi, de a konkrét fájltól is függ.
awk '/[a-zA-Z]+/{print $2" "$1}' nevek.txt
Új hozzászólás Aktív témák
- Őrületes specifikációkkal rendelkezik a Tachyum csodaprocesszora
- iPad topik
- Napelem
- Sony MILC fényképezőgépcsalád
- TCL LCD és LED TV-k
- Huawei P30 Pro - teletalálat
- Lakáshitel, lakásvásárlás
- Az iPhone 17 gáncsolta el a Galaxy S26 Prót?
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- Milyen belső merevlemezt vegyek?
- További aktív témák...
- Antivírus szoftverek, VPN
- Windows 10 11 Pro Office 19 21 Pro Plus Retail kulcs 1 PC Mac AKCIÓ! Automatikus 0-24
- Árváltozás+játék!The Witcher 2 Assassins of Kings Collector's Edition
- Windows, Office licencek kedvező áron, egyenesen a Microsoft-tól - Automata kézbesítés utalással is!
- Keresem a Barkács Balázs Játékokat
- Telefon felvásárlás!! iPhone 13 Mini/iPhone 13/iPhone 13 Pro/iPhone 13 Pro Max
- Samsung Galaxy A23 5G 128GB, Kártyafüggetlen, 1 Év Garanciával
- Telefon felvásárlás!! Samsung Galaxy S25, Samsung Galaxy S25 Plus, Samsung Galaxy S25 Ultra
- Google Pixel 10 Pro 5G Porcelain AI-fotó varázs, Super Actua 120 Hz 128 GB
- Apple iPhone 12 Pro / 128GB / Kártyafüggetlen / 12Hó Garancia
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopműhely Bt.
Város: Budapest



Sok példa van neten, meg tutorialok is, nulláról nem írja meg helyetted senki, főleg konkrét példa/feladat nélkül. 


