我正在将文本文件作为命令行输入传递给脚本,并且需要解析该文件以搜索特定模式:
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
也是变量。
提供了在输入文本文件中该行仅出现一次的功能。
我发现mikmart/purrr
's "pmap" branch可以逐行读取,但是找不到读取上述变量的方法:
#!/bin/bash
while IFS='' read -r line || [[ -n "$line" ]]; do
echo "Text read from file: $line"
done < "$1"
任何帮助将不胜感激!
答案 0 :(得分:2)
如果您的路径的值不是set字段,并且您希望将其匹配为正则表达式,请尝试执行以下操作。
val=$(awk 'match($0,/\/[^ ]*/){print substr($0,RSTART,RLENGTH);exit}' Input_file)
您可以通过执行var=$(awk code above)