awk string substr和cut不需要char



我需要删除字符串上的一些字符,例如我有这个字符串

$ tst=/oracle/orcl/dbms1911c
$ printf '%s' ${tst} | awk -F'/' '{print substr($4,5,6)}'
$1911c

我怎样去掉11,我的输出将是19c?只有当字符串不是19c时,我才需要这个

Thanks in advance

根据您所展示的样品,您可以尝试以下操作吗?

解决方案1: awksubstr创建一个变量,然后使用它来获得所需的显示值,如果我们需要在程序中进一步使用这个变量,这种方法将是有用的。其中tst=/oracle/orcl/dbms1911c为所示示例中的变量值。

printf '%s' ${tst} | 
awk -F'/' '{val=substr($4,5,6);print substr(val,1,2) substr(val,5)}'

解决方案2:不使用变量和使用substr本身,虽然我觉得第一种方法是最好的,变量也可以用于其他任务,为了好玩,作为另一个选项添加这个。

printf '%s' ${tst} | 
awk -F'/' '{print substr(substr($4,5,6),1,2) substr(substr($4,5,6),5)}'

3的解决方案:或者试试下面的子字符串:

printf '%s' ${tst} | 
awk -F'/' '{print substr($4,5,2) substr($4,9)}'
$ printf '%sn' "$tst" | sed 's/.*(..)..(.)$/12/'
19c

相关内容

  • 没有找到相关文章

最新更新