0

我将文本文件作为命令行输入传递给脚本,并且需要解析文件以搜索特定模式:

00 TOOL     | Running /variable/directory/path/to/the/tool/executable in batch (pid xxxxx)

现在我必须提取/variable/directory/path/to/the/tool/executable到一个变量 say $executable

在这里,保持不变的部分是00 TOOL | Running在行的开头和行in batch (pid xxxxx)的结尾,这里xxxxx又是一个变量。

假设在输入文本文件中,这一行只会出现一次。

我找到了逐行读取的代码段,但找不到读取上述变量的方法:

#!/bin/bash
while IFS='' read -r line || [[ -n "$line" ]]; do
    echo "Text read from file: $line"
done < "$1"

任何帮助将不胜感激!

4

1 回答 1

2

如果您的路径值不是一个设置字段,并且您想将其匹配为正则表达式形式,请尝试以下一次。

val=$(awk 'match($0,/\/[^ ]*/){print substr($0,RSTART,RLENGTH);exit}' Input_file)

您可以通过执行将其值设置为变量var=$(awk code above)

于 2018-09-30T18:06:07.597 回答