将命令行输出写入文本文件

时间:2014-09-29 09:40:19

标签: java linux command-line

使用> <outputfule.txt>将结果写入输出文件的简单方法,但这在我的情况下不起作用

我有客户端服务器类型的场景,首先我启动服务器 -

java -mx500m -cp stanford-ner-with-classifier.jar edu.stanford.nlp.ie.NERServer -port 9191 -loadClassifier classifiers/english.all.3class.distsim.crf.ser.gz &

现在服务器处于侦听模式。在这里,我开始客户端即时问题。

java -cp stanford-ner-with-classifier.jar edu.stanford.nlp.ie.NERServer -port 9191 -client 

这要求输入输入句子并在按Enter键的命令行上打印结果。我试过这种方式

java -cp stanford-ner-with-classifier.jar edu.stanford.nlp.ie.NERServer -port 9191 -client > result.txt

停止客户端即时。如果它从文本文件读取输入并将其写入结果文本文件,我没问题。

这样做的正确方法是什么?

3 个答案:

答案 0 :(得分:2)

如果我正确理解您的查询,您希望

&#34; java -cp stanford-ner-with-classifier.jar edu.stanford.nlp.ie.NERServer -port 9191 -client &#34;

从&#34; result.txt&#34;获取输入。

在这种情况下,你应该执行

&#34; java -cp stanford-ner-with-classifier.jar edu.stanford.nlp.ie.NERServer -port 9191 -client&lt;的Result.txt&#34;

更正回复:

然后你应该试试这个。

&#34; java -cp stanford-ner-with-classifier.jar edu.stanford.nlp.ie.NERServer -port 9191 -client&lt; x.txt&gt; y.txt&#34;

从x.txt读取输入并将输出写入y.txt

的位置

答案 1 :(得分:1)

尝试

echo "input sequence" | xargs java -cp stanford.jar NERServer -port 9191 -client > result.txt

这将用于将带参数的命令重定向到文件。

如果您只想将参数传递给命令,那么只需要

java -cp stanford.jar NERServer -port 9191 -client < result.txt`

cat params.txt | xargs java -cp stanford.jar NERServer -port 9191 -client

xargs应将您的参数从文件发送到java程序

P.S。为了简洁和可读性,我省略了包名称

答案 2 :(得分:1)

如果您愿意,可以同时重定向标准输入和标准输出:

java -cp stanford.jar NERServer -port 9191 -client < input.txt > result.txt

或者做这样的事情:

echo -e "line1\nline2" | java -cp stanford.jar NERServer -port 9191 -client > r.txt

执行输入/输出重定向时,应用程序的运行方式与输入/输出不会重定向的方式完全相同。

它不知道或不关心您是否从键盘输入输入或从某处重定向。 因此它总是会将相同的东西打印到标准输出(在您的情况下)

  

按RETURN键给NER标记它,或者只返回完成

除了在解释它们时从results.txt中丢弃第一行之外,你无能为力。