如何在字符串中找到模式的最后一次出现并在unix shell脚本中获取所有内容?

时间:2016-05-19 15:45:53

标签: shell unix substring

请帮助我在最后一次出现“_”之前获取所有内容。我的字符串看起来像。

abc_defg_hijkl_20160101.txt

我只需要在最后一个“_”之前的部分

abc_defg_hijkl

我正在尝试使用cut但是再次无法使用它,因为下划线('_')的数量不固定。

1 个答案:

答案 0 :(得分:0)

使用BASH的字符串操作,您可以在输入的最后_之后修剪部分:

s='abc_defg_hijkl_20160101.txt'
echo "${s%_*}"

abc_defg_hijkl

如果您没有使用BASH,那么您可以使用此sed命令从输入中删除最后_之后的部分:

echo "$s" | sed 's/_[^_]*$//'