试图用 sed 排除日期中的年份

Trying to get the year out of a date with sed

我正在使用以下命令使用 sed 从字符串中获取年份。

echo 1234-1-12 | sed -r 's/(\d{4})-\d{1,2}-\d{1,2}//'

但不知何故 returns 整个日期而不是年份。

得到1234-1-12

期待1234

知道为什么它不起作用吗?

简单grep方法:

echo "1234-1-12" | grep -o '^[^-]*'

输出:

1234

使用date命令:

string="1234-1-12"
date -d "${string}" +%Y

输出:

1234