Korsord eller Scrabble hjälpare. (3 / 6 steg)
Steg 3: Använda grep.
$ grep "ed$" ord
…
Alfred
Amerikaniserad
Engelskspråkig
Appleseed
Paragrafform
Englished
Ethelred
Matas
Fred
Frenched
…
Detta genererar en ganska lång lista. så vi kanske vill paginate utdata.
$ grep "ed$" ord | mindre
eller vi kanske vill spara listan i en fil vi kan redigera och granska för senare användning.
$ grep "ed$" ord > wordfile
Det är skönt, nu kan göra bokstäver i början av filen. Vi använder den "^" underteckna att visa att vi vill ha något i början av ordet.
$ grep "^ th" ord
…
tacka
tackade
tacksam
thankfuller
thankfullest
Tack och lov
tacksamhet
tacksamhets
…
Du kan kombinera de två kommandona så att du kan hitta ett ord som är början och slutet vi vill. Vi vill använda en "*" att säga alla bokstäver kan gå i mellan. I detta fall trodde vill vi en av bokstäverna vara "m". Vi använder "[]" för att visa vilka möjliga bokstav eller de bokstäver vi vill i mellan.
$ grep "^ zo * [m] * ed$" ord
Zed
zoomade
Det kan du använda "[]" för att säga jag vill ha alla ord som börjar med dessa två skrivelser.
$ grep "^ [xz]"
…
xylem's
xylofon
xylofons
xylofoner
xylophonist
xylophonists
z
zanied
Zanier
Zanies
zaniest
…
grep "^ m.. t... s$ "ord
mantels
mantlar
martyrer
Masters
frågor
mentorer
Misters
vantar
dödliga
granatkastare
motton märkningen också återfinns
MOUTHES
Mutters
mystiker
Slag av blow:
* ^-Carat (Skift-6) säger "Detta är början av raden". Utan den skulle det hitta alla ord som "fundamentals".
* $ - Dollartecknet är samma sak, bara till slutet av raden. Utan det, skulle du också få ord som "madrasser".
* . -Perioden betyder "alla tecken här". En, och en enda, karaktär ska matcha här.
Men anta att du arbetar med ett spel förutom ett korsord, like Scrabble för anföra som exempel, och du är begränsad av fler hinder än i ett korsord. Du kanske vill 'krok' (Scrabble jargong för "Lägg bokstäverna i början eller slutet av ett ord för att bilda fler ord"). Så, låt oss se hur många ord slutar i "är".
ß grep "är$" ord | WC -l
43
Tja, är de bra odds. Men vi slog i utkanten av styrelsen med några av dem (jag kikade). Så, vi behöver ord som är sju bokstäver eller mindre som slutar på "är". "^... är$" skulle få alla sju brev ord, men inte kortare sådana. Lösningen är ganska kryptiska denna gång:
ß grep "^ .\{1,4\}are$" ord
flyg
medvetna om
Bare
se upp
skrälla
vård
jämföra
dare
deklarera
snärja
fanfar
Fare
flare
bländning
Hare
Mare
Pare
förbereda
sällsynta
skrämma
Dela
snara
reservdelar
Square
Stare
omedvetna
ware
krigföring
välbefinnande
.. .men vi har träffat den cirkumflex, dollartecken och perioden före, så egentligen den nya delen är \{1,4\}. Detta säger "matcha som några som en, och så många som fyra, upprepningar av det föregående tecknet". Aktivare för nummerintervall som är klammerparenteser, som då måste föregås av snedstreck (vet någon varför, klass?). Och sedan det föregående tecknet är en period som matchar vilken bokstav som helst, vi har hittat alla ord som är kortare än åtta bokstäver som upphör i "är".
Detta är bra, men vi har bara så många bokstäver att arbeta med i Scrabble på en gång. Säga att vår nuvarande rack har bokstäverna "C F T W Andersson". Kan vi begränsa den till bara ord som använder dessa bokstäver?
ß grep "^ [cftwabm] \ {1, 4\} är$" ord
medvetna om
Bare
vård
Fare
Mare
ware
Ah, nu får vi någonstans! Hakparentes [] ge godtagbar teckenuppsättningen. Ett annat sätt att använda dem är att uttala en rad (t. ex. [0-9]), men det är knappast i vanliga fall i ordspel.
Den enda begränsningen är fantasin. Om du spelar Alfapet, låt din partner vet vad du gör för att förhindra alla sårade känslor. Jag gillar att använda samma idé för korsord också.