我有一个这样的字符串:
data-c(huk24-small1);divider-bin-1.4.4;divider-conf-1.3.3-w(1,16);storage-bin-1.5.4;storage-conf-1.5.0-w(1);worker-bin-4.5.1;worker-conf-4.4.1-c(huk24)_20130620200658
其中,应删除具有14位数字和下划线的时间戳。所以它应该看起来像这样:
data-c(huk24-small1);divider-bin-1.4.4;divider-conf-1.3.3-w(1,16);storage-bin-1.5.4;storage-conf-1.5.0-w(1);worker-bin-4.5.1;worker-conf-4.4.1-c(huk24)
如何在bash脚本中实现这一点?请注意,只有当确实有下划线和14位数字时,才应进行删除。
发布于 2013-06-21 02:15:24
使用sed:
echo $str | sed 's/_[0-9]\{14\}$//'
或
echo ${str%_[0-9]*}
发布于 2013-06-21 02:15:21
使用参数扩展:
string=${string%_[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]}
发布于 2013-06-21 02:16:33
使用awk
awk --re-interval -F_ '{$NF~/^[0-9]{14}$/?NF--:NF}1' <<< $var
https://stackoverflow.com/questions/17220797
复制相似问题