簡體   English   中英

將命令行輸出寫入文本文件

[英]writing command line output to text file

因為有一種簡單的方法可以使用> <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 

該請求輸入輸入的句子並在按回車鍵時在命令行上打印結果。 我以這種方式嘗試

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

停止客戶端即時。 我可以從文本文件中讀取輸入並將其寫入結果文本文件中。

正確的方法是什么?

如果我正確理解您的查詢,您會期望

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

從“ result.txt”中獲取輸入。

在這種情況下,您應該執行

“ java -cp stanford-ner-with-classifier.jar edu.stanford.nlp.ie.NERServer-端口9191 -client <result.txt”

更正的回復:

那你應該試試這個。

“ java -cp stanford-ner-with-classifier.jar edu.stanford.nlp.ie.NERServer-端口9191 -client <x.txt> y.txt”

從x.txt讀取輸入並將輸出寫入y.txt的位置

嘗試

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程序

PS為了簡潔和易讀,我省略了軟件包名稱

如果願意,您可以同時重定向標准輸入和標准輸出:

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標簽,或僅按RETURN完成

除了在解釋它們時將result.txt的第一行扔掉之外,您無能為力。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM