我有一条路径:
/home/alejo/Desktop/Proyecto_UIS-MINCIENCIAS/qmmm_propranolol_aescorcia/A_PSF-NUEVO/ORIII/MCC/out/mcc_oriii_after_centering.pdb
我希望有:
/home/alejo/Desktop/Proyecto_UIS-MINCIENCIAS/qmmm_propranolol_aescorcia/A_PSF-NUEVO/ORIII/MCC/out/
我试过的:
a="/home/alejo/Desktop/Proyecto_UIS-MINCIENCIAS/qmmm_propranolol_aescorcia/A_PSF-NUEVO/ORIII/MCC/out/mcc_oriii_after_centering.pdb"
echo $a | awk -F'/' '{print $NF}'
但是,我得到的是:
mcc_oriii_after_centering.pdb
您可以将值设置
$NF
为空字符串:BEGIN{OFS=FS}
在开始处理之前将输出字段分隔符设置为与输入字段分隔符相同 - 否则输出将由默认空格而不是斜杠分隔。至少在 GNU awk 中,您可以改为通过递减来完全删除最后一个字段
NF
(尽管这将给出不带斜杠的输出):您还可以使用 shell 参数扩展来完全避免 awk:
${parameter%pattern}
parameter
返回带有已删除最短尾随匹配的shell 变量的值pattern
- 参见例如BashGuide: Parameter Expansion或者干脆使用
dirname
命令。