Chcę poradzić sobie z danymi wiersza poleceń w Ruby: > cat input.txt | myprog.rb > myprog.rb < input.txt > myprog.rb arg1 arg2 arg3 ... Jak najlepiej to zrobić? W szczególności chcę poradzić sobie z czystym STDIN i mam nadzieję na eleganckie rozwiązanie. #!/usr/bin/env ruby STDIN.read.split("\n").each do |a| puts a end …
Jeśli wykonam następujące czynności: import subprocess from cStringIO import StringIO subprocess.Popen(['grep','f'],stdout=subprocess.PIPE,stdin=StringIO('one\ntwo\nthree\nfour\nfive\nsix\n')).communicate()[0] Dostaję: Traceback (most recent call last): File "<stdin>", line 1, in ? File "/build/toolchain/mac32/python-2.4.3/lib/python2.4/subprocess.py", line 533, in __init__ (p2cread, p2cwrite, File "/build/toolchain/mac32/python-2.4.3/lib/python2.4/subprocess.py", line 830, in _get_handles p2cread = stdin.fileno() AttributeError: 'cStringIO.StringI' object has no attribute 'fileno' Najwyraźniej obiekt cStringIO.StringIO …
Poniższy skrypt Perla ( my.pl) może czytać z pliku w args wiersza poleceń lub ze STDIN: while (<>) { print($_); } perl my.plodczyta ze STDIN, a perl my.pl a.txtodczyta z a.txt. To jest bardzo wygodne. Zastanawiasz się, czy w Bash istnieje odpowiednik?
Jestem raczej mylony z celem tych trzech plików. Jeśli dobrze rozumiem, stdinto plik, w którym program zapisuje swoje żądania uruchomienia zadania w tym procesie, stdoutto plik, w którym jądro zapisuje dane wyjściowe, a proces żądający dostępu do informacji z niego stderrjest plikiem w których wpisane są wszystkie wyjątki. Po otwarciu …
Chcę przetworzyć plik tekstowy z węzłem za pomocą wywołania wiersza poleceń, takiego jak: node app.js < input.txt Każda linia pliku musi być przetwarzana indywidualnie, ale po przetworzeniu linii wejściowej można zapomnieć. Korzystając z nasłuchiwania danych standardowego wejścia, otrzymuję porcję pary wejściowej o rozmiar bajtu, więc ustawiłem to. process.stdin.resume(); process.stdin.setEncoding('utf8'); var …
Czy istnieje sposób, aby skutecznie to zrobić w bash: /my/bash/script < echo 'This string will be sent to stdin.' Zdaję sobie sprawę, że mogę potokować wyjście z echa, takie jak to: echo 'This string will be piped to stdin.' | /my/bash/script
Mam skrypt Pythona parse.py, który w skrypcie otwiera plik, powiedzmy plik1, a następnie coś zrobić, może wypisuje całkowitą liczbę znaków. filename = 'file1' f = open(filename, 'r') content = f.read() print filename, len(content) W tej chwili używam stdout, aby skierować wynik do mojego pliku wyjściowego - wyjście python parse.py >> …
Próbuję wykonać odwrotność od „ Wykryć, czy stdin to terminal czy potok? ”. Uruchamiam aplikację, która zmienia swój format wyjściowy, ponieważ wykrywa potok na STDOUT i chcę, aby myślał, że jest to terminal interaktywny, aby podczas przekierowywania otrzymywał te same dane wyjściowe. Myślałem, że owinięcie tego w expectskrypt lub użycie …
Kiedy wykonuję " python" z terminala bez argumentów, wyświetla się interaktywna powłoka Pythona. Kiedy wykonuję " cat | python" z terminala, nie uruchamia to trybu interaktywnego. W jakiś sposób, nie otrzymując żadnego sygnału wejściowego, wykrył, że jest podłączony do rury. Jak wykonać podobne wykrywanie w C, C ++ lub Qt?
Czy można nasłuchiwać nadchodzących naciśnięć klawiszy w działającym skrypcie nodejs? Jeśli używam process.openStdin()i słucham jego 'data'zdarzenia, dane wejściowe są buforowane do następnej nowej linii, na przykład: // stdin_test.js var stdin = process.openStdin(); stdin.on('data', function(chunk) { console.log("Got chunk: " + chunk); }); Uruchamiając to, otrzymuję: $ node stdin_test.js <-- type '1' …
Jaki jest najprostszy sposób odczytania pełnego wiersza w programie konsoli C Wprowadzony tekst może mieć zmienną długość i nie możemy nic założyć co do jego zawartości.
Piszę skrypt powłoki, który powinien być nieco bezpieczny, tj. Nie przekazuje bezpiecznych danych przez parametry poleceń i najlepiej nie używa plików tymczasowych. Jak mogę przekazać zmienną do wejścia standardowego polecenia? A jeśli nie jest to możliwe, jak poprawnie wykorzystać pliki tymczasowe do takiego zadania?
Bash pozwala na użycie: cat <(echo "$FILECONTENT") Bash pozwala również na użycie: while read i; do echo $i; done </etc/passwd aby połączyć poprzednie dwa, można użyć: echo $FILECONTENT | while read i; do echo $i; done Problem z ostatnią polega na tym, że tworzy ona podpowłokę i po zakończeniu pętli …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.