Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Strony: 1

Członek DUG


Witam
Taki mały problem z sed
Mamy plik test.txt z danymi:
test1
test2
test3
...
testn
Wstawiam do każdej liniii znak # na początek linii:
sed -e 's/^/#/g' test.txt
Ładnie wszystko działa, mam na początku każdej linii #.
Plik test.txt mi się zmienia, dochodzą dodatkowe linie z wpisami :
ala1
ala2
bela1
...
Robię drugi przebieg tej samej funkcji, jednak chcę tylko dodać # tam gdzie go nie ma.
jak puszczę powyższ epolecenie sed to doda mi do wszystkich linii dodatkowy # i w pliku będe miał np:
##test1
Jak to załatwić zgrabnie, bez kombinowania.
Pozdrawiam
Offline




złodziej wirków ]:->
UWAGA ŁAMANIEC!! Wrażliwe oczy proszone o opuszczenie posta :)
export I=0;cat d|while read LINE;do I=$(( $I + 1 )); if ! [[ "$LINE" =~ "#" ]]; then sed -i -e "${I}s/^/#/" d;fi;donewinnetou@Hordeum-vulgare /tmp $ cat d
test
test1
test2
test3
test4
winnetou@Hordeum-vulgare /tmp $ export I=0;cat d|while read LINE;do I=$(( $I + 1 )); if ! [[ "$LINE" =~ "#" ]]; then sed -i -e "${I}s/^/#/" d;fi;done
winnetou@Hordeum-vulgare /tmp $ cat d
#test
#test1
#test2
#test3
#test4
winnetou@Hordeum-vulgare /tmp $ echo -e "test5\ntest6\ntest7" >> d
winnetou@Hordeum-vulgare /tmp $ cat d
#test
#test1
#test2
#test3
#test4
test5
test6
test7
winnetou@Hordeum-vulgare /tmp $ export I=0;cat d|while read LINE;do I=$(( $I + 1 )); if ! [[ "$LINE" =~ "#" ]]; then sed -i -e "${I}s/^/#/" d;fi;done
winnetou@Hordeum-vulgare /tmp $ cat d
#test
#test1
#test2
#test3
#test4
#test5
#test6
#test7Ostatnio edytowany przez winnetou (2011-10-03 17:47:24)
Offline




Użyszkodnik
sed -e '/^[^#]/s:^:#:' test.txt
Nie poprzedzi kratką pustych wierszy, jeżeli ma to dla Ciebie jakieś znaczenie.
Offline




złodziej wirków ]:->
Minio - ten Twój sed taki fajny zgrabny ;)) Człowiek uczy się całe życie ;)
Offline

Członek DUG


Dzięki bardzo
O to mi chodziło
Pozdrawiam
Offline
Strony: 1