我需要删除字符串上的一些字符,例如我有这个字符串
$ tst=/oracle/orcl/dbms1911c
$ printf '%s' ${tst} | awk -F'/' '{print substr($4,5,6)}'
$1911c
我怎样去掉11
,我的输出将是19c
?只有当字符串不是19c时,我才需要这个
Thanks in advance
根据您所展示的样品,您可以尝试以下操作吗?
解决方案1:
用awk
的substr
创建一个变量,然后使用它来获得所需的显示值,如果我们需要在程序中进一步使用这个变量,这种方法将是有用的。其中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