Kirjautuminen

Haku

Tehtävät

Keskustelu: Yleinen keskustelu: Miten Ubuntussa etsitään tiedostoista tietyt päivämäärät?

Jaska [18.12.2019 11:33:32]

#

Miten Linuxin Bashissa saa etsittyä tietyssä kansiossa olevien csv-tiedostojen ne rivit, joissa esiintyy jokin annetuista päivämääristä? Ajattelin, että tämän voisi tehdä säännöllisillä lausekkeilla, mutta en keksinyt tapaa. Esimerkiksi jos haluaisin etsiä ne tiedostot, joissa esiintyy 1.1.2019 tai 19.4.2019, niin sain listattua niitä komennolla

grep -E '1.1.2019|19.4.2019' *.csv

Tällöin kuitenkin haku palautti myös tiedoston, jossa on päivämäärä 31.1.2019, mitä en halua mukaan.

Metabolix [18.12.2019 12:07:17]

#

Lausekkeeseen pitää merkitä jotenkin päivämäärän alku ja loppu. Esimerkiksi ^ ja $ merkkaavat rivin alkua ja loppua ja \D merkitsee ei-numeroa ainakin Perlin murteessa, jonka saa käyttöön -E:n sijaan -P:llä.

The Alchemist [18.12.2019 12:49:54]

#

\b on Perl regexissä "word boundary" eli se estää ykköstä edeltävän numeron mätsäämisen tuossa esimerkissä.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta