• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Wyciągnięcie wartości z pliku

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
0 głosów
426 wizyt
pytanie zadane 21 października 2020 w Systemy operacyjne, programy przez Patrycjerz Mędrzec (192,320 p.)
edycja 21 października 2020 przez Patrycjerz

Cześć,

potrzebuję, za pomocą narzędzi dostępnych w terminalu Linuksa, wyciągnąć wartość pola response (to co jest w cudzysłowach, ale bez nich), jeśli poprzedzone jest polem url o odpowiedniej wartości. Ma to działać dla kilku wystąpień tego samego url. Preferowałbym użycie wyrażeń regularnych, ale inne pomysły też są mile widziane.

Przykładowy plik

url: "https://onet.pl"
response: "<html><body>Onet</body></html>"
url: "https://google.com"
response: "<html><body>Google First</body></html>"
url: "https://wp.pl"
response: "<html><body>WP</body></html>"
url: "https://google.com"
response: "<html><body>Google Second</body></html>"

Chcę wyciągnąć response dla google.com. Wynikiem operacji powinno być

<html><body>Google First</body></html>
<html><body>Google Second</body></html>

Powyższe to tylko przykład. Pól może być więcej, a ich wartości mogą być prezentowane w kilku liniach pliku. Nie możemy założyć, że response jest zawsze jedną linię pod url.

Dzięki za pomoc :)

komentarz 21 października 2020 przez overcq Pasjonat (22,200 p.)
Skąd się bierze pole "response"?
komentarz 21 października 2020 przez Patrycjerz Mędrzec (192,320 p.)
To tylko przykład. Nazwy pól i ich wartości nie mają znaczenia.
komentarz 21 października 2020 przez overcq Pasjonat (22,200 p.)
Chcesz po prostu pobrać zawartość strony?

2 odpowiedzi

0 głosów
odpowiedź 21 października 2020 przez overcq Pasjonat (22,200 p.)

Użyj awk. Coś w rodzaju:

/^response:/ {
# tutaj kod
}

 

0 głosów
odpowiedź 21 października 2020 przez tangarr Mędrzec (155,140 p.)

Ja bym to zrobił w taki sposób:

grep -A1 "url: \"https://google.com\"" /tmp/test.txt | grep "response: " | cut -d'"' -f2

Podejrzewam, że można by to zrobić awkiem bardziej elegancko

komentarz 21 października 2020 przez Patrycjerz Mędrzec (192,320 p.)

Właśnie chciałem uniknąć sposobu z grepem z opcją after, gdyż w moim przypadku pola mogą mieć wartości ze znakami nowej linii, więc nie mogę założyć, że ileś linijek niżej będzie response.

Podobne pytania

0 głosów
1 odpowiedź 729 wizyt
pytanie zadane 29 lipca 2017 w Offtop przez Hiskiel Pasjonat (22,830 p.)
0 głosów
0 odpowiedzi 590 wizyt
0 głosów
1 odpowiedź 251 wizyt
pytanie zadane 8 sierpnia 2017 w Systemy operacyjne, programy przez magda1111 Nowicjusz (170 p.)

93,176 zapytań

142,186 odpowiedzi

321,980 komentarzy

62,507 pasjonatów

Advent of Code 2024

Top 15 użytkowników

  1. 1637p. - dia-Chann
  2. 1614p. - Łukasz Piwowar
  3. 1599p. - CC PL
  4. 1597p. - Łukasz Eckert
  5. 1572p. - Tomasz Bielak
  6. 1537p. - Łukasz Siedlecki
  7. 1531p. - rucin93
  8. 1509p. - rafalszastok
  9. 1356p. - ssynowiec
  10. 1341p. - Mikbac
  11. 1328p. - Michal Drewniak
  12. 1273p. - Adrian Wieprzkowicz
  13. 1169p. - Grzegorz Aleksander Klementowski
  14. 1155p. - Piotr Aleksandrowicz
  15. 1149p. - Michał Telesz
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...