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
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
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;done
winnetou@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 #test7
Ostatnio edytowany przez winnetou (2011-10-03 17:47:24)
Offline
sed -e '/^[^#]/s:^:#:' test.txt
Nie poprzedzi kratką pustych wierszy, jeżeli ma to dla Ciebie jakieś znaczenie.
Offline
Minio - ten Twój sed taki fajny zgrabny ;)) Człowiek uczy się całe życie ;)
Offline
Dzięki bardzo
O to mi chodziło
Pozdrawiam
Offline
Strony: 1