Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 逐行向标准输入_Bash_Shell - Fatal编程技术网

Bash 逐行向标准输入

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:

我有一个命令,它通过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
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…<$文件名
是否正常工作??