我正在尝试实现在特殊字符之间获取文本。您可以按照下面的步骤了解我想要实现的目标。我有必要的命令来执行此操作,但我正在寻找一种更有效的方法,以防某些条件可能根据结果而改变。
下面是文本 On-Line (Prim) 的示例。我想提取“--”第一次和第二次出现之间的任何文本。
所以我在“VAL1”变量中有下面的文本
IBM Informix Dynamic Server Version 14.10.FC10XA -- On-Line (Prim) -- Up 77 days 23:08:31 -- 130337920 Kbytes
因此目前我正在使用以下内容:
echo "$VAL1" | awk -F'--' '$1 ~ /Version/ {print $2}'
以上代码给出以下输出:
On-Line (Prim)
但是,您看不到行尾必须有空格,但开头非常明显。我想确保只打印“--”之间的单词,而不打印“--”内句子前后的任何空格。
因此我尝试使用下面的方法,对我来说似乎不错:
echo "$VAL1" | awk -F'--' '$1 ~ /Version/ {print $2}' | sed 's/^ //g' | sed 's/ *$//'
输出:
On-Line (Prim)
我想知道是否有更好、更简单、更充分的方法来做到这一点?