Мне все еще нравится r
более Rscript
здесь (но тогда я не беспристрастен в этом ...)
edd@rob:~$ (echo "Hello,World";echo "Bye,Bye") | r -e 'X <- readLines(stdin());print(X)' -
Hello,World
Bye,Bye
[1] "Hello,World" "Bye,Bye"
edd@rob:~$
r
может также read.csv()
напрямую:
edd@rob:~$ (echo "X,Y"; echo "Hello,World"; echo "Bye,Bye") | r -d -e 'print(X)' -
X Y
1 Hello World
2 Bye Bye
edd@rob:~$
-d
- это, по сути, предопределенный 'read stdin в X через read.csv', который, я думаю, я позаимствовал как идею из rio или другого пакета.
Редактировать: Ваш пример работает с небольшими изменениями:
- Сделайте его исполняемым:
chmod 0755 ex.R
- Правильно выводите данные в трубу, т.е. используйте
echo
, а не cat
- Используйте обозначение
./ex.R
для файла в текущем каталоге - Я изменил его на
print(x)
Тогда:
edd@rob:~$ echo AAA | ./ex.R
[1] "AAA"
edd@rob:~$