从 bash 中的输入文本文件中解析我的匹配模式的特定字符串

Parse specific string my matching pattern from a input text file in bash

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

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

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

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

前提是在输入的文本文件中,这一行只会出现一次。

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

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

任何帮助将不胜感激!

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

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

您可以通过 var=$(awk code above)

将其值设置为变量