Find 및 sed가 출력을 반환하지 않습니다.

Find 및 sed가 출력을 반환하지 않습니다.

디렉토리를 검색 중인데 제 경우에는 마지막 디렉토리만 반환됩니다 xyz. 그런 다음 sed를 사용하여 해당 디렉토리의 다른 모든 확장을 대체하여 이를 달성하고 싶습니다.

내가 시도한 것:

find **/macml/xyz -maxdepth 1 -not -path '*__*' -type d

#Returns the following
macml/xyz

그런 다음 sed와 결합합니다.

find **/macml/xyz -maxdepth 1 -not -path '*__*' -type d -exec sed -E "s|^[macml\/]*||g" {} \+ & 

아무것도 반환하지 않습니다.

예상 출력:

xyz

답변1

시도 중인 명령에서 예상되는 "xyz" 출력을 얻으려면 다음 명령을 사용할 수 있습니다.

find /macml/xyz -maxdepth 1 -not -path '__' -type d -exec bash -c 'echo "${0##*/}"' {} + & 

이 명령은 경로의 "macml/" 부분을 제거하여 "xyz" 디렉터리를 반환합니다.

관련 정보