Pracuję nad skryptem powłoki, który będzie używany przez innych i może przyjmować podejrzane ciągi. Opiera się on na awk, więc jako podstawowa miara odporności, chcę mieć awk wyprowadzane łańcuchy zakończone nullem - komendy, które będą otrzymywały dane z awk, mogą w ten sposób uniknąć pewnej ilości zerwania ze stringów, które zawierają spacje lub nie-często -in-angielskie znaki.Jak mogę wyprowadzać łańcuchy zakończone znakiem NUL w Awk?
Niestety, z podstawowej dokumentacji awk
, nie wiem, jak powiedzieć awk, aby wydrukować ciąg zakończony znakiem ASCII, a nie znakiem nowej linii. Jak mogę powiedzieć awk, że chcę ciągi zakończone znakiem NUL?
wersje awk, które mogą być stosowane:
[[email protected]]$ awk --version
awk version 20070501
[[email protected]]$ awk -W version
mawk 1.3.3 Nov 1996, Copyright (C) Michael D. Brennan
[[email protected]]$ awk -W version
GNU Awk 3.1.7
więc prawie cała rodzina awk
wersjach. Jeśli będziemy musieli skonsolidować wersję, prawdopodobnie będzie to GNU Awk, ale odpowiedzi na wszystkie wersje są mile widziane, ponieważ być może będę musiał działać we wszystkich tych awariach. Och, starsze skrypty.
najlepszym przewodnikiem znalazłem do tej pory: http://sandrotosi.blogspot.com/2011/09/print-nul-terminated-string-with-awk.html - ale To nie jest pełna odpowiedź, a także przypadkowy blog blogspot ma mniej SEO niż SO, więc dobra odpowiedź na WR będzie przydatna dla większej liczby osób. –
Wypróbuj 'awk -F $ '\ 0'' – Kevin
Kevin: Czy chcesz zrobić z tego odpowiedź? –