2015-04-07 4 views
0

У меня есть файл data.txt. Его содержание:Как перенаправить поток на простое приложение Java?

a b c 
d e f 

У меня также есть Java-код

public class Main { 
    public static void main(String[] args) { 
     System.out.println("size: " + args.length); 
     for (String arg : args) { 
      System.out.println("arg: " + arg); 
     } 
    } 
} 

И сценарий run:

#!/bin/bash 
java -jar test.jar "[email protected]" 

Я хочу, чтобы перенаправить файл в виде потока в мое приложение.

Я попытался следующие:

cat data.txt | ./run 

Который дал мне:

size: 0 

Но я хочу видеть:

size: 6 
a 
b 
c 
d 
e 
f 

Как я могу это сделать?

+0

Почему вы хотите делать такое? – CKing

+0

Потому что я хочу передать файл в свое приложение таким образом. – barbara

+1

Почему бы вам не попробовать? Затем вы увидите, работает ли он. – vanje

ответ

1

Вы можете вызвать с xargs конкатенировать содержимое стандартного ввода с командной строки:

cat data.txt | xargs ./run 

В зависимости от значения $IFS, это может быть эквивалентно:

./run a b c d e f 
+0

Прохладный! Хорошее решение. Благодарю. – barbara

Смежные вопросы