Strona 1 z 1
[grep] Wyciąganie ciągu z ciągu
: 23 wrz 2009, 22:33
autor: neonek911
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
Odp: [grep] Wyciąganie ciągu z ciągu
: 23 wrz 2009, 23:10
autor: dk75
grep wyciąga tylko całe linie
Kod: Zaznacz cały
awk '/^#include/ {$tmp=$2; gsub("[\"<>]", "", $tmp); print $tmp}' plik.c
Odp: [grep] Wyciąganie ciągu z ciągu
: 23 wrz 2009, 23:16
autor: neonek911
@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.
Odp: [grep] Wyciąganie ciągu z ciągu
: 23 wrz 2009, 23:31
autor: thalcave
Trochę zmodyfikowałem polecenie
dk75:
Kod: Zaznacz cały
awk '/^#include/ {gsub("[\"<>]", "", $2); print $2}' plik.c
Odp: [solved][grep] Wyciąganie ciągu z ciągu
: 24 wrz 2009, 10:27
autor: neonek911
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 ?
Odp: [grep] Wyciąganie ciągu z ciągu
: 24 wrz 2009, 12:53
autor: abc667
Odp: [grep] Wyciąganie ciągu z ciągu
: 24 wrz 2009, 19:00
autor: dk75
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
Odp: [grep] Wyciąganie ciągu z ciągu
: 24 wrz 2009, 19:24
autor: k2cl
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...
Odp: [grep] Wyciąganie ciągu z ciągu
: 24 wrz 2009, 19:38
autor: dk75
bash - 3.2.39
awk - 3.1.6
Odp: [grep] Wyciąganie ciągu z ciągu
: 24 wrz 2009, 19:42
autor: thalcave
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.