使用> <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
停止客户端即时。如果它从文本文件读取输入并将其写入结果文本文件,我没问题。
这样做的正确方法是什么?
答案 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中丢弃第一行之外,你无能为力。