Sida 1 av 1
sed och variabler
Postat: 27 jul 2007, 22:50
av oden
Hej
Håller på med tldp fortfarande... Tydligen har jag inte snappat alla klurigheter med sed än för jag kan inte lägga till info i slutet på en rad som jag söker upp i passwd filen. Hoppas att någon snäll själ här vill hjälpa mig!
#!/bin/bash
user=frankrike
PasswdUser=`grep $user passwd`
echo
echo
echo "$PasswdUser"
UserAppend="$PasswdUser humbug"
echo "$UserAppend"
echo
echo
sed -i -e "s/$PasswdUser/$UserAppend/g" passwd
SV: sed och variabler
Postat: 29 jul 2007, 21:32
av Konservburk
Jag förstår inte riktigt vad du försöker göra,
men så här lägger man till något sist på en
matchad rad:
Kod: Markera allt
sed 's/din matchning.*/&det som ska läggas till/'
I ditt fall något i stil med:
Kod: Markera allt
user=frankrike
sed -i "s/$user.*/& humbug/" passwd
SV: sed och variabler
Postat: 29 jul 2007, 22:45
av oden
Wow det funkade! Tack så jätte mycket!
sed -i "s/$user.*/& humbug/" passwd
Måste bara gå igenom det här så att jag kan göra om det här själv senare!
I är för att skriva tillbaka till filen som jag söker i alltså inte skicka till stdpoutput, s för att söka, " för att Bash ska hinna översätta variablerna innan sed tar tag i det hela!?
Men vad betyder & i detta fall? Jag kan ju se vad som händer men hittar inte i min referens till regular expressions vad det betyder...
SV: sed och variabler
Postat: 29 jul 2007, 23:38
av Konservburk
oden skrev:
I är för att skriva tillbaka till filen som jag söker i alltså inte skicka till stdpoutput,
-i
oden skrev:
s för att söka,
s står för
substitute, dvs att ersätta det som matchas med
någonting annat.
oden skrev:
" för att Bash ska hinna översätta variablerna innan sed tar tag i det hela!?
Stämmer bra.
oden skrev:
Men vad betyder & i detta fall? Jag kan ju se vad som händer men hittar inte i min referens till regular expressions vad det betyder...
& är en bakåtreferens. Den byts ut mot det som matchades.
Jämför med att lägga till det hela först på den matchade raden:
SV: sed och variabler
Postat: 30 jul 2007, 11:28
av oden
Ok, fin genomgång, tack så mycket för hjälpen!