Skip navigation

Monthly Archives: September 2012

Przy konfiguracji usług sieciowych z wykorzystanie protokołu SSL niezbędne jest narzędzie do testowania.
Ja do tego celu zawsze używałem polecenia openssl s_client…
Read More »

XML że względu na swoją budowę wymaga specyficznych narzędzi do obróbki. W linuksie mamy ich na szczęście kilka, a przy odrobinie wysiłku możemy napisać własne wykorzystując różne dostępne biblioteki czy moduły.

Pierwszym narzędziem na mojej liście jest xmllint. Spośród wielu opcji najczęściej wykorzystuję formatowanie XML’a:

bash$> cat test.xml | xmllint -format -

… oraz walidację względem pliku DTD bądź schematu:

bash$> xmllint --valid test.xml

Powyższe wywołanie sprawdzi poprawność pliku XML względem schematu/pliku DTD wskazanego wewnątrz pliku. Jeśli chcmy jawnie podać lokalizację schetu/DTD możemy wykorzystać opcje –dtdvalid URL lub –schema shcema-file.xsd. Oczywiście xmllint posiada wiele innych przydatnych opcji więc warto zerknąć do manuala.

Od kilku miesięcy pracuję w korporacji, gdzie niestety – jak to w korporacji – standardowym systemem desktopowym jest tzw. produkt pewnej dużej firmy z Redmond. Aby utrzymać swoją produktywność na rozsądnym poziomie zaopatrzyłem się w maszynę wirtualną z linuksem. Problem w tym, że do celów prezentacji obrabianych przeze mnie danych i tak wykorzystuję Excel’a.

Szukając jakiegoś szybkiego sposobu na kopiowanie danych z konsoli do arkusza znalazłem bardzo prosty program o nazwie xclip, który kopiuje do schowka to co dostaje na standardowe wejście. Dodając do tego współdzielony schowek między maszyną wirtualną maszyną a Windowsem – mamy szybki i efektywny sposób na kopiowanie danych. Przerzucałem w ten sposób po kilka tysięcy wierszy bez zauważalnego opóźnienia. Aby dane wklejane do arkusza były automatycznie rozbijane na kolumny powinny wykorzystywać znak tabulacji jako separator.

Przykładowe wywołanie wraz z podmianą przecinka na znak tabulacji:

 Bash$ ./skrypt.sh | sed 's/,/\t/g' | xclip -selection clipboard

A potem już tylko <Ctrl-V>…