Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
neonek911
Piegowaty Guziec
Posty: 14 Rejestracja: 22 lis 2008, 19:13
Płeć: Mężczyzna
Wersja Ubuntu: 8.10
Środowisko graficzne: GNOME
Post
autor: neonek911 » 23 wrz 2009, 22:33
Witam!
Ja to chyba na prawdę jestem taki niekumaty. Próbuję wyciągnąć za pomocą grepa ciąg z ciągu, konkretnie includy z plików. Wg mnie powinno to tak wyglądać tak:
ale chyba coś pokręciłem, bo herezje mi wychodzą (prawie wszystkie linie printuje. Prosiłbym o jakiś działający kod do wyciągania tych includów (nazw). Z takiego oto ciągu: #include <plik> lub #include "plik" powinno wyjść samo plik.
Pozdrawiam,
neonek911
dk75
Przebojowy Jelonek
Posty: 1142 Rejestracja: 07 mar 2007, 22:59
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME
Architektura: x86_64
Post
autor: dk75 » 23 wrz 2009, 23:10
grep wyciąga tylko całe linie
Kod: Zaznacz cały
awk '/^#include/ {$tmp=$2; gsub("[\"<>]", "", $tmp); print $tmp}' plik.c
Linux Mint Debian Edition x86_64/2.6.39, Conky 1.8.0, Xorg 7.6/1.10.4 - GNOME 2.30.2, nVidia 285.03
Lenovo T61p, HITACHI HTS722010K9SA00 100GB, ST9250827AS 250GB
http://linuxcounter.net/user/483055.html
neonek911
Piegowaty Guziec
Posty: 14 Rejestracja: 22 lis 2008, 19:13
Płeć: Mężczyzna
Wersja Ubuntu: 8.10
Środowisko graficzne: GNOME
Post
autor: neonek911 » 23 wrz 2009, 23:16
@dk75
Teraz to mi tylko puste linie wypisuje ;/ Chyba zostanie mi tylko grepnięcie całych linii i cut. A może jakieś inne polecenie, nie musi być standardowe shella. Może być np. perl, python.
thalcave
Przyjaciel
Posty: 821 Rejestracja: 08 lis 2006, 12:17
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Fluxbox
Architektura: x86
Post
autor: thalcave » 23 wrz 2009, 23:31
Trochę zmodyfikowałem polecenie
dk75 :
Kod: Zaznacz cały
awk '/^#include/ {gsub("[\"<>]", "", $2); print $2}' plik.c
GNU/Linux user
Na pytania na PW/e-mail nie udzielam odpowiedzi!
Szanujmy innych użytkowników!
Wesprzyj akcje: Temat rozwiązany -> dodajemy [solved]
neonek911
Piegowaty Guziec
Posty: 14 Rejestracja: 22 lis 2008, 19:13
Płeć: Mężczyzna
Wersja Ubuntu: 8.10
Środowisko graficzne: GNOME
Post
autor: neonek911 » 24 wrz 2009, 10:27
Wielkie dzięki thalcave, o to mi chodziło
A i jeszcze jedno. Jak sprawdzić czy wyciągnięte pliki istnieją w aktualnym katalogu i podkatalogach ?
abc667
Piegowaty Guziec
Posty: 29 Rejestracja: 28 lip 2009, 20:43
Płeć: Mężczyzna
Wersja Ubuntu: 9.04
Środowisko graficzne: GNOME
Architektura: x86
Post
autor: abc667 » 24 wrz 2009, 12:53
dk75
Przebojowy Jelonek
Posty: 1142 Rejestracja: 07 mar 2007, 22:59
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME
Architektura: x86_64
Post
autor: dk75 » 24 wrz 2009, 19:00
thalcave pisze: Trochę zmodyfikowałem polecenie
dk75 :
Kod: Zaznacz cały
awk '/^#include/ {gsub("[\"<>]", "", $2); print $2}' plik.c
A znowu mi tak nie działało
i dlatego zrobiłem z przypisaniem do nowej zmiennej - pewnie zależy albo od shella albo od wersji AWK
Linux Mint Debian Edition x86_64/2.6.39, Conky 1.8.0, Xorg 7.6/1.10.4 - GNOME 2.30.2, nVidia 285.03
Lenovo T61p, HITACHI HTS722010K9SA00 100GB, ST9250827AS 250GB
http://linuxcounter.net/user/483055.html
k2cl
Przyjaciel
Posty: 3632 Rejestracja: 09 gru 2007, 12:48
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: LXDE
Architektura: x86
Post
autor: k2cl » 24 wrz 2009, 19:24
U mnie działają jakims cudem obydwa warianty
Shell to bash 4.0.033, AWK - wersja 3.1.7
EDIT:
żeby być precyzyjnym i nie pozostawiać miejsca dla niedopowiedzeń - wspomniany awk to GAWK - pod Debianem mógłby to być również MAWK...
Work less, climb more
dk75
Przebojowy Jelonek
Posty: 1142 Rejestracja: 07 mar 2007, 22:59
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME
Architektura: x86_64
Post
autor: dk75 » 24 wrz 2009, 19:38
bash - 3.2.39
awk - 3.1.6
Linux Mint Debian Edition x86_64/2.6.39, Conky 1.8.0, Xorg 7.6/1.10.4 - GNOME 2.30.2, nVidia 285.03
Lenovo T61p, HITACHI HTS722010K9SA00 100GB, ST9250827AS 250GB
http://linuxcounter.net/user/483055.html
thalcave
Przyjaciel
Posty: 821 Rejestracja: 08 lis 2006, 12:17
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Fluxbox
Architektura: x86
Post
autor: thalcave » 24 wrz 2009, 19:42
Kwestia paczki. k2cl na Archu używa awk z paczki gawk. Na Debianie miałem mawk, po zainstalowaniu gawk obie formułki zadziałały.
GNU/Linux user
Na pytania na PW/e-mail nie udzielam odpowiedzi!
Szanujmy innych użytkowników!
Wesprzyj akcje: Temat rozwiązany -> dodajemy [solved]
Użytkownicy przeglądający to forum: Bing [Bot] i 4 gości