![리눅스에서 문자열의 일부를 얻는 방법](https://linux55.com/image/1277/%EB%A6%AC%EB%88%85%EC%8A%A4%EC%97%90%EC%84%9C%20%EB%AC%B8%EC%9E%90%EC%97%B4%EC%9D%98%20%EC%9D%BC%EB%B6%80%EB%A5%BC%20%EC%96%BB%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
find 명령의 출력은 다음과 같습니다.
/home/user/test/folder1/abc.png
이제 나는 얻고 싶다
폴더 1
위의 문자열에서
답변1
경로 왼쪽의 고정 위치 또는 오른쪽의 고정 깊이를 기준으로 경로의 해당 부분을 찾고 계십니까? 왼쪽에서 보는 경우 다음과 같이 필드 구분 기호로 "/"를 사용하고 네 번째 필드를 잡아서 cut을 사용하여 쉽게 이 작업을 수행할 수 있습니다.
find ... | cut -d/ -f4
답변2
path=/home/user/test/folder1/abc.def
folder=$(basename $(dirname $path))
또는 find 출력에 대해 작업하려는 경우(예: 여러 경로, 한 줄에 하나씩)
find ... | awk -F/ '{print $(NF-1)}'
find ... | sed 's#.*/\([^/]*\)/[^/]*$#\1#'
답변3
나는 awk를 사용할 것이다.
그것은 다음과 같습니다:
find /home -name "abc.png" | awk -F"/" '{print $5}'
답변4
내 시도는 다음과 같습니다.
find . -name abc.png -exec dirname {} \; |grep -o '[^/]*$'