0

我需要在 shell 脚本中使用以下 grep 命令:

grep 'DUE TO TIME LIMIT' ./slurm-3364.out

它输出 slurm-3364.out 中包含模式“由于时间限制”的行。我想用变量替换文件名并将输出影响到另一个变量。到目前为止,我无法得到相同的结果,我尝试过:

jobOver="$(grep 'DUE TO TIME LIMIT' "$NEWEST")"
echo $jobOver

$NEWEST 包含适当的文件名。这会产生一个很长的文本输出,似乎列出了工作目录中的每个文件......

编辑:正如评论中提到的,做 echo "$jobOver" 解决了这个问题。

4

1 回答 1

2

您可以执行以下操作:

jobOver=$(grep 'DUE TO TIME LIMIT' "$NEWEST")
echo "$jobOver"

这里,NEWEST是包含您要 grep 的文件名的变量。


这是我刚刚运行的本地测试:

$ cat slurm-3364.out
I DIED DUE TO TIME LIMIT, YESTERDAY.
I FEEL GREAT WHERE I AM.
YOU SHOULD JOIN ME.

$ NEWEST="slurm-3364.out"
$ jobOver=$(grep 'DUE TO TIME LIMIT' "$NEWEST")

$ echo "$jobOver"
I DIED DUE TO TIME LIMIT, YESTERDAY.
于 2016-02-24T17:28:29.490 回答