Nowe posty

Autor Wątek: skrytp: usuwajacy wolne linie  (Przeczytany 13337 razy)

palindro

  • Gość
skrytp: usuwajacy wolne linie
« dnia: 2007-05-29, 21:17:43 »
witam potrzebuje skryptu który bedzie:

usuwal wolne linie w pliku PODANYM jako parametr...

Offline ultr

  • Users
  • Guru
  • *****
  • Wiadomości: 1177
    • Zobacz profil
skrytp: usuwajacy wolne linie
« Odpowiedź #1 dnia: 2007-05-30, 02:05:21 »
Możesz wykorzystać `awk` ze sprawdzaniem $0!=""

Więcej: `man awk` i google :)

micu

  • Gość
skrytp: usuwajacy wolne linie
« Odpowiedź #2 dnia: 2007-05-30, 12:02:14 »
Cześć,

Tu nie trzeba skryptu :-) , wystarczy (e)grep, np.

egrep -v "^[[:blank:]]*$" PLIK

Pozdrawiam
Micu

palindro

  • Gość
skrytp: usuwajacy wolne linie
« Odpowiedź #3 dnia: 2007-05-30, 18:27:31 »
2007-05-30 12:02:14 micu napisał:

> Cześć,
 >
 > Tu nie trzeba skryptu :-) , wystarczy (e)grep, np.
 >
 > egrep -v "^[[:blank:]]*$" PLIK
 >
 > Pozdrawiam
 > Micu
 >



tylko ze ta operacja Mosi byc wykonana wlasnie przez skrypt....
a nie pojedynczo komende....
     
    prosba dalej aktualna.....

ZipoKing

  • Gość
skrytp: usuwajacy wolne linie
« Odpowiedź #4 dnia: 2007-05-30, 21:45:11 »
>
 > tylko ze ta operacja Mosi byc wykonana wlasnie przez skrypt....
 > a nie pojedynczo komende....
 >      
 >     prosba dalej aktualna.....

skrypt.sh:
#!/bin/sh
egrep -v "^[[:blank:]]*$" $1 > $2

no i wykonujesz: skrypt.sh plik_wejsciowy plik_wyjsciowy

[Xavery] Uprasza się o nie podawanie gotowych rozwiązań na talerzu, zwłaszcza w sytuacji w której pytający miał przedstawiony sposób rozwiązania zadania (zapewne szkolnego) :)

pawelpik

  • Gość
Odp: skrytp: usuwajacy wolne linie
« Odpowiedź #5 dnia: 2015-08-10, 10:51:24 »
Komenda tr posiada przełącznik -s, który pozwala usunąć powtarzające się znaki. Linia pusta oznacza, że znak nowej linii występuje dwa razy z rzędu. Polecam zapoznać się z manualem!

Unk

  • Gość
Odp: skrytp: usuwajacy wolne linie
« Odpowiedź #6 dnia: 2015-12-20, 11:16:54 »
sed'em też się da to zrobić:

sed '/^$/d' test > test2

a jeśli mają być usunięte linie z samymi pustymi znakami to:

sed '/^\s*$/d' test > test2