Bash 逐行向标准输入
我有一个命令,它通过stdin迭代地获取输入,直到遇到EOF为止。我想通过编写一个shell脚本来自动化这个过程,该脚本将从文件中读取每一行并将其提供给这个命令。我想不出如何为stdin提供线路Bash 逐行向标准输入,bash,shell,Bash,Shell,我有一个命令,它通过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:
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
FILENAME=$1
cat$FILENAME |在读取行时
做
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.thousion.mountainpipeline-stdin<$LINE
完成
但我得到了一个“模糊重定向”错误。我刚刚开始使用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
FILENAME=$1
读行时
做
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.thousion.mountainpipeline-stdin<$LINE
完成如果Java程序逐行读取标准输入,而您希望它从文件中读取,则只需执行以下操作:
java -cp xxx.jar YourProgram < "Path/to/the/file"
java-cp xxx.jar程序
,这将与您的程序完美配合
没有必要在脚本中逐行读取文件 循环不需要cat
,只需在末尾使用done<“$FILENAME”
。如果使用这种循环,程序将为文件中的每一行启动。这就是你想要的吗?不,我不想要。那我就改了。但是每一行呢?试试java@塞勒斯工作。非常感谢。为什么必须使用while
循环?无法使用单行命令:java…<$文件名
是否正常工作??