我有一个命令,通过stdin迭代输入,直到遇到EOF。我想通过编写一个shell脚本来自动执行此过程,该脚本将从文件中读取每一行并将其提供给此命令。我无法弄清楚如何为stdin喂食线。
FILENAME=$1
cat $FILENAME | while read LINE
do
java -cp stanford-corenlp-3.4.jar:stanford-corenlp-3.4-models.jar:xom.jar:joda-time.jar:jollyday.jar:ejml-0.23.jar -mx2g edu.stanford.nlp.sentiment.SentimentPipeline -stdin < $LINE
done
但我得到了一个&#34;模糊重定向&#34;错误。我刚刚开始使用shell脚本。我不知道如何去做这个
编辑:我更改了代码,以便每次都不启动程序
FILENAME=$1
while read LINE
do
java -cp stanford-corenlp-3.4.jar:stanford-corenlp-3.4-models.jar:xom.jar:joda-time.jar:jollyday.jar:ejml-0.23.jar -mx5g edu.stanford.nlp.sentiment.SentimentPipeline -stdin < $LINE
done <$FILENAME
答案 0 :(得分:1)
如果您的Java程序逐行读取标准输入,而您希望它从文件中读取,您只需:
java -cp xxx.jar YourProgram < "Path/to/the/file"
,这将与您的计划完美配合。
无需在脚本中逐行读取文件!