[+] Bash, dopisanie znaku na początku linii zawierającej ciąg znaków
: 29 czerwca 2011, 11:51
W jaki sposób można dopisać znak # na początku linii zawierającej zadaną frazę?
Dopisanie # na poczśtku każdej linii nie jest trudne, bo wystarczy coś takiego:
natomiast mnie interesują tylko te linie, które zawierają ciągi znaków zawartych w pliku, niech będzie /home/lista
Teraz pytanie jak to można rozwiązać?
Próbowałem ten sposób:
Ale efekt jest oczywisty i nie działa jak trzeba.
Dodane:
Doszedłem do czegoś takiego:
ale coś tam dalej nie działa, plik lista:
plik przed edycja:
plik po edycji:
Dopisanie # na poczśtku każdej linii nie jest trudne, bo wystarczy coś takiego:
Kod: Zaznacz cały
sed 's/^/#/g'
Teraz pytanie jak to można rozwiązać?
Próbowałem ten sposób:
Kod: Zaznacz cały
exec 3<&0
exec 0</home/lista
while read line
do
grep $line plik | sed 's/^/#/g'
done
exec 0<&3
Dodane:
Doszedłem do czegoś takiego:
Kod: Zaznacz cały
#!/bin/bash
exec 3<&0
exec 0</home/lista
while read line
do
a=`grep $line /etc/arp/oki2 |tail -n 1 | sed 's/^/#/g'`
echo "A: " $a
echo "line: " $line
sed -i "s/$line/$a/g" /etc/arp/oki2
done
exec 0<&3
Kod: Zaznacz cały
kot
ala
Kod: Zaznacz cały
ala ma kota
kot to nie pies
kot ma ale
ala to baba
ale tu nie ma nic
Kod: Zaznacz cały
#ala to baba ma #kot ma alea
#kot ma ale to nie pies
#kot ma ale ma ale
#ala to baba to baba
ale tu nie ma nic