我有一个字符串,其形式segment_78787
存储$ID
在我的 shell 脚本中调用的变量中。我需要获取第二部分“78787”并将其分配给另一个变量。
我尝试过像
batchname=`ID|cut -d_ -f1`
它没有给我任何结果。
答案1
如果您的 shell 支持它(所有类似 POSIX 的 shell 都会这样做),您可以使用扩展
batchname=${ID##*_}
甚至
batchname=${ID#*_}
第一种形式删除最右边的下划线之前的所有字符(包括最右边的下划线),第二种形式删除最左边的下划线之前的所有字符(包括最左边的下划线)。在您的特定示例中,两种形式是等效的。
答案2
它应该是
batchname=`echo $ID | cut -d_ -f2`