나는 경로가 있습니다 :
/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
답변1
값을 $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 awk에서는 감소하여 마지막 필드를 모두 삭제할 수 있습니다 NF
(이렇게 하면 후행 슬래시 없이 출력이 제공되지만).
awk -F'/' 'BEGIN{OFS=FS} {NF--; print}'
awk를 완전히 피하기 위해 쉘 매개변수 확장을 사용할 수도 있습니다.
$ echo "${a%/*}/"
/home/alejo/Desktop/Proyecto_UIS-MINCIENCIAS/qmmm_propranolol_aescorcia/A_PSF-NUEVO/ORIII/MCC/out/
${parameter%pattern}
parameter
가장 짧은 후행 일치가 있는 쉘 변수의 값을 반환합니다.pattern
. 예를 참조하세요.BashGuide: 매개변수 확장
아니면 단순히 dirname
명령을 사용하십시오.