파일 경로(예: txt 파일)가 포함된 path.txt 파일이 있습니다.
/Folder/F1/F2/F3/F4/.../Fn/abc.txt
경로, 즉 처음부터 마지막 항목까지의 문자열을 추출하고 싶습니다 /
(경로의 폴더 수가 다를 수 있으므로).
난 갖길 원해:
/Folder/F1/F2/F3/F4/.../Fn
sed/awk/perl/vi 중 어느 것이 최선의 선택이고 어떻게 선택합니까?
답변1
언급한 도구 중 하나를 사용하려면 다음을 사용할 수 있습니다 sed
.
echo "/Folder/F1/F2/F3/F4/.../Fn/abc.txt" | sed "s/\/[^/]*$//"
sed -i "s/\/[^/]*$//" path.txt
Bash를 사용하는 경우 Bash 매개변수 확장을 사용하여 이를 달성할 수 있습니다.
path=$(cat path.txt)
echo "${path%/*}"
말한 바와 같이구석에당신은 그것을 사용할 수 있습니다 dirname
.
답변2
basename
dirname
인수로 주어진 파일 이름의 마지막 부분과 마지막 부분을 제외한 모든 부분을 인쇄합니다 .
$ dirname "/Folder/F1/F2/F3/F4/.../Fn/abc.txt"
/Folder/F1/F2/F3/F4/.../Fn
(또는 문서에서 dirname "$(< pathname.txt)"
:)