如何使用 bash 提取子字符串

dot*_*dot 1 bash

我有一个代表日期的字符串,如下所示:

    "May 5 2014"
Run Code Online (Sandbox Code Playgroud)

我想知道如何从中提取“5”。

到目前为止我尝试过的:

   echo "May 5 2014" | sed 's/[^0-9]*\s//'
Run Code Online (Sandbox Code Playgroud)

返回“5 2014”

很抱歉提出补救问题。刚刚接触 bash。

dev*_*ull 5

使用cut

echo "May 5 2014" | cut -d' ' -f2
Run Code Online (Sandbox Code Playgroud)

或者awk

echo "May 5 2014" | awk '{print $2}'
Run Code Online (Sandbox Code Playgroud)

如果您想要在没有外部实用程序的情况下使用它,则需要两个步骤:

s="May 5 2014"
t="${s#* }"
echo "${t% *}"
Run Code Online (Sandbox Code Playgroud)