![]() |
Hej och välkommen från USA till UNIX och Linux Forum! Tack för ditt besök och gå med i vår globala gemenskapen.
|
|
google unix.com
|
|||||||
| Forum | Registrera | Forum Regler | Länkar | Album | FAQ | Medlemslista | Kalender | Söka | Dagens inlägg | Markera forum som lästa |
| Shell-programmering och Skript Post frågor om ksh, CSH, SH, bash, PERL, PHP, sed, awk och andra skalskript och skal skriptspråk här. |
Mer UNIX och Linux Forum Ämnen Du kan hitta Helpful
|
||||
| Tråd | Thread Starter | Forum | Svar | Senaste Inlägg |
| dont't hitta rätt regex | Trek | Shell-programmering och Skript | 3 | 05-27-2008 12:20 |
| regex test i bash | subin_bala | Shell-programmering och Skript | 1 | 04-16-2008 03:27 |
| Enkel KLÅ script? | JayC89 | Shell-programmering och Skript | 16 | 10-02-2007 07:23 |
| hitta-regex: matchningsalternativ flera förlängningar | r0sc0 | Shell-programmering och Skript | 2 | 12-08-2005 02:32 |
| kommando hittar returnerar bash: / usr / bin / hitta: Argument listan är för lång | yacsil | Shell-programmering och Skript | 1 | 12-15-2003 06:38 |
![]() |
|
|
LinkBack | Thread Tools | Sök i denna tråd | Rate Thread | Visningslägen |
|
|
|
||||
|
Ett enkelt hitta och ersätta utan att använda någon regex (bash)
Hej,
Jag måste göra en exakt hitta och ersätta (Jag vill inte använda vanliga uttryck eftersom input från användare). Jag vill hitta en linje som matchar användarens inmatade texten och ersätta den med en tom sträng. Låt oss exempelvis säga användaren anger Jag älskar "Unix" och innehållet i filen där jag vill göra Sök och ersätt är: Kod:
I like "Unix" more than DOS I love "Unix" I said I love "Unix" I love "Unix" a lot Vilka Unix verktyget kan göra detta? Ett exempel kan vara bra! Jag sökte och fann att sed är något som ligger nära vad jag letar efter, men det tar ett vanligt uttryck. Eftersom input string kommer från användaren, det är tufft för mig att skapa ett vanligt uttryck för det. Alla andra sätt? Tack! |
|
||||
|
Mannen grep
Kod:
read input fgrep -vx "$input" file Det är inte alltför svårt att skapa en ordentlig vanligt uttryck i sig, men det tenderar att vara lite ful. Kod:
read input echo "$input" | sed -e 's/[][\\.*^$]/\\&/g; s/.*/s%^&\$%%/' | sed -f - file |
![]() |
| Komihåglista |
| Taggar |
| regex, reguljära uttryck |
| Thread Tools | Sök i denna tråd |
| Visningslägen | Betygsätt denna tråd |
|
|