Jak wykonać polecenia, które wypisuję na standardowym wyjściu, używając na przykład awk, używam awk do wydrukowania tego:
grep -B100 some file1.tcl
grep -B100 some file2.tcl
Następnie przechowuj go w pliku .sh, a następnie źródłowy plik. Czy możliwe jest przesłanie go gdzieś w celu wykonania poleceń?
awk '{print xx}' | pipeline
W przypadku czegoś bardziej zaawansowanego niż proste polecenie (i oczywiście także proste polecenia):
Spowodowałoby to uruchomienie kodu w środowisku bieżącej powłoki i dlatego kod mógłby również ustawić och modyfikować zmienne w twojej powłoce.
Ponieważ jednak oczywiście chcesz parsować inne pliki
grep
, dlaczego nie zrobić tego w tym samymawk
programie? ... lub z innymawk
programem, który odczytuje wzorce i nazwy plików?źródło
Nie musisz nawet tego robić, ponieważ już żyjesz niebezpiecznie; po prostu uruchom polecenie, które zawsze wypisuje tylko bezpieczne polecenia do wykonania w konstrukcji rozszerzenia podpowłoki:
źródło
print "touch \"Hello world.txt\""
w powłoce, nie honorowałby cytowania - zamiast tego tworzyłby pliki"Hello
iworld.txt"
.