Android 101 by Fred Widjaja
Sisällysluettelo:
Melko usein tekstitiedostojen kanssa työskennellessäsi on löydettävä ja korvattava yhden tai useamman tiedoston tekstijonot.
sed
on tream ed itor. Se voi suorittaa tekstin perustoiminnot tiedostoilla ja syöttövirroilla, kuten putkilinjoilla.
sed
voit etsiä, löytää ja korvata, lisätä ja poistaa sanoja ja rivejä. Se tukee perus- ja laajennettuja säännöllisiä lausekkeita, joiden avulla voit sovittaa monimutkaiset kuviot.
, puhumme siitä kuinka löytää ja korvata merkkijonot
sed
. Osoitamme sinulle myös, kuinka suorittaa rekursiivinen haku ja korvaaminen.
Etsi ja korvaa merkkijono
sed
Sedistä on useita versioita, joiden välillä on joitain toiminnallisia eroja. macOS käyttää BSD-versiota ja useimmissa Linux-jakeluissa on oletuksena esiasennettu GNU
sed
. Käytämme GNU-versiota.
Tekstin etsimisen ja korvaamisen yleinen muoto
sed
on seuraava:
sed -i 's/SEARCH_REGEX/REPLACEMENT/g' INPUTFILE
-
-i
- Oletuksenased
kirjoittaa ulostulonsed
. Tämä vaihtoehto käskeesed
: n muokata tiedostoja paikallaan. Jos mukana toimitetaan laajennus (ex -i.bak), alkuperäisestä tiedostosta luodaan varmuuskopio.s
- Korvaava komento, luultavasti eniten käytetty komento sedissä./ / /
- Erotinmerkki. Se voi olla mikä tahansa merkki, mutta yleensä käytetään kaltevuusviivaa (/
).SEARCH_REGEX
- Normaali merkkijono tai säännöllinen lauseke, jota etsit.REPLACEMENT
- Korvaava merkkijono.g
- Globaali korvaava lippu. Oletuksenased
lukee tiedosto riviltä riviltä ja muuttaa vain ensimmäisen rivinSEARCH_REGEX
esiintymisen. Kun korvaava lippu toimitetaan, kaikki esiintymät korvataan.INPUTFILE
- sen tiedoston nimi, johon haluat suorittaa komennon.
On hyvä käytäntö laittaa lainauksia argumentin ympärille, jotta kuoren metamerkit eivät laajene.
Katsotaan esimerkkejä siitä, kuinka
sed
komennolla voidaan etsiä ja korvata tiedostojen tekstiä joillakin sen yleisimmin käytetyistä vaihtoehdoista ja lipuista.
Esittelyssä käytämme seuraavaa tiedostoa:
file.txt
123 Foo foo foo foo /bin/bash Ubuntu foobar 456
sed -i 's/foo/linux/' file.txt
123 Foo linux foo linux /bin/bash Ubuntu foobar 456
Globaalilla korvauslipulla
sed
korvaa kaikki
sed
esiintymät:
sed -i 's/foo/linux/g' file.txt
123 Foo linux linux linux /bin/bash Ubuntu linuxbar 456
Kuten olet voinut huomata, edellisessä esimerkissä korvataan myös
foobar
foo
foobar
merkkijonon sisällä. Jos tämä ei ole haluttu käyttäytyminen, käytä sanarajaista lauseketta (
\b
) hakujonon molemmissa päissä. Tämä varmistaa, että osittaisia sanoja ei ole sovittu yhteen.
sed -i 's/\bfoo\b/linux/g' file.txt
123 Foo linux linux linux /bin/bash Ubuntu foobar 456
Jotta kuviotulos kirjaimet eivät ole herkkiä, käytä
I
merkintää. Alla olevassa esimerkissä käytämme sekä l- että
g
lippuja:
sed -i 's/foo/linux/gI' file.txt
123 linux linux linux linux /bin/bash Ubuntu linuxbar 456
sed -i 's/\/bin\/bash/\/usr\/bin\/zsh/g' file.txt
Helpoin ja paljon luettavampi vaihtoehto on käyttää toista rajaavaa merkkiä. Useimmat ihmiset käyttävät pystypalkkia (
|
) tai kaksoispistettä (:), mutta voit käyttää mitä tahansa muuta merkkiä:
sed -i 's|/bin/bash|/usr/bin/zsh|g' file.txt
123 Foo foo foo foo /usr/bin/zsh Ubuntu foobar 456
Voit käyttää myös säännöllisiä lausekkeita. Esimerkiksi etsiäksesi kaikki 3-numeroiset numerot ja korvata ne käyttämälläsi merkkijonolla:
sed -i 's/\b\{3}\b/number/g' file.txt
number Foo foo foo foo /bin/bash demo foobar number
Toinen hyödyllinen sed-ominaisuus on, että voit käyttää ampersand-merkkiä
&
joka vastaa sovitettua mallia. Merkkiä voidaan käyttää useita kertoja.
Jos esimerkiksi haluat lisätä kihara-aukkoja
{}
jokaisen 3-numeroisen numeron ympärille, kirjoita:
sed -i 's/\b\{3}\b/{&}/g' file.txt
{123} Foo foo foo foo /bin/bash demo foobar {456}
Viimeisenä, mutta ei vähäisimpänä, on aina hyvä idea tehdä varmuuskopio muokattaessa tiedostoa
sed
. Tarjoa vain laajennus
-i
vaihtoehtoon. Voit esimerkiksi muokata
file.txt
ja tallentaa alkuperäisen tiedoston nimellä
file.txt.bak
jota käyttäisit:
sed -i.bak 's/foo/linux/g' file.txt
ls
Rekursiivinen haku ja korvaa
Joskus haluat hakea rekursiivisesti hakemistoja tiedostoista, jotka sisältävät merkkijonon, ja korvata merkkijono kaikista tiedostoista. Tämä voidaan tehdä käyttämällä komentoja, kuten
find
tai
grep
, hakemaan tiedostoja rekursiivisesti hakemistosta ja viemällä
grep
tiedostonimet.
Seuraava komento etsii rekursiivisesti nykyisen työhakemiston tiedostoja ja välittää tiedostonimet
sed
tiedostoon.
find. -type f -exec sed -i 's/foo/bar/g' {} +
Välttääksesi ongelmat tiedostoissa, joissa nimissä on tilaa, käytä
-print0
vaihtoehtoa, joka käskee
find
tulostamaan tiedostonimen, jota seuraa nolla merkki ja
-print0
xargs -0
: n avulla:
find. -type f -print0 | xargs -0 sed -i 's/foo/bar/g'
Jos haluat jättää hakemiston pois, käytä
-not -path
vaihtoehtoa. Jos esimerkiksi korvaat merkkijonon paikallisessa git-repo-ohjelmassa poistaaksesi kaikki tiedostot, jotka alkavat pisteellä (
.
), Käytä:
find. -type f -not -path '*/\.*' -print0 | xargs -0 sed -i 's/foo/bar/g'
find. -type f -name "*.md" -print0 | xargs -0 sed -i 's/foo/bar/g'
Toinen vaihtoehto on käyttää
grep
komentoa löytääksesi rekursiivisesti kaikki tiedostot, jotka sisältävät hakumallin, ja
sed
sitten tiedostonimet
sed
:
grep -rlZ 'foo'. | xargs -0 sed -i.bak 's/foo/bar/g'
johtopäätös
Vaikka se voi vaikuttaa monimutkaiselta ja monimutkaiselta, tiedostojen tekstin etsiminen ja korvaaminen
sed
on aluksi hyvin yksinkertaista.
Lisätietoja
sed
komennoista, lisävarusteista ja lipuista on GNU sed -käsikirjassa ja Grymoire sed -oppaassa. Jos sinulla on kysyttävää tai palautetta, jätä kommentti.
Matemaattinen syötepaneeli käyttää matematiikan tunnistinta, joka on rakennettu Windows 7: een tunnistamaan käsinkirjoitetut matemaattiset lausekkeet. Sen jälkeen voit helposti käyttää sitä tekstinkäsittelyohjelmilla tai laskentataulukoilla. Matemaattinen syöttölaite on suunniteltu käytettäväksi tablet-kynällä Tablet PC: ssä, mutta voit käyttää sitä millä tahansa syöttölaitteella, kuten kosketusnäytöllä tai jopa hiirellä.
Matemaattinen syöttölaite käyttää Windowsissa sisäänrakennettua matemaattisen tunnistimen 7 tunnistamaan käsinkirjoitetut matemaattiset lausekkeet. Sen jälkeen voit helposti käyttää sitä tekstinkäsittelyohjelmilla tai laskentataulukoilla.
Mikä on google adm ja kuinka käyttää sitä Android-laitteen löytämiseen
Aikaisemmin Google ei tarjonnut "Etsi puhelimestani" -funktionaalisuutta, mutta kaikki, joka on lopulta muuttunut uuden Android-laitehallinnan ansiosta.
Kuinka tarkastella ja työskennellä google-aseman tiedostoissa offline-tilassa
Näin voit tarkastella ja käyttää Google Drive-tiedostoja offline-tilassa. Se on täydellinen opas.