我有一条路:
/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发布于 2020-09-11 18:22:54
可以将值$NF设置为空字符串:
$ echo "$a" | awk -F'/' 'BEGIN{OFS=FS} {$NF=""; print}'
/home/alejo/Desktop/Proyecto_UIS-MINCIENCIAS/qmmm_propranolol_aescorcia/A_PSF-NUEVO/ORIII/MCC/out/BEGIN{OFS=FS}将输出字段分隔符设置为与处理开始前输入字段分隔符相同的输出字段分隔符,否则输出将被默认空格分隔,而不是斜杠。
至少在GNU中,您可以通过减少NF来完全删除最后一个字段(尽管这将给出一个输出而没有尾随斜杠):
awk -F'/' 'BEGIN{OFS=FS} {NF--; print}'您还可以使用shell参数展开来完全避免awk:
$ echo "${a%/*}/"
/home/alejo/Desktop/Proyecto_UIS-MINCIENCIAS/qmmm_propranolol_aescorcia/A_PSF-NUEVO/ORIII/MCC/out/${parameter%pattern}返回shell变量parameter的值,其中删除了pattern的最短尾随匹配-例如,参见指南:参数展开
或者简单地使用dirname命令。
https://askubuntu.com/questions/1274423
复制相似问题