SED를 사용하여 파일 이름을 제거하는 방법

SED를 사용하여 파일 이름을 제거하는 방법

g_inboundDir "/tmp/AI_INBOUND" 값을 포함하는 변수가 있습니다.
이제 "g_inboundDir" 변수가 가리키는 디렉터리의 파일을 읽은 다음 해당 파일을 사용해야 합니다. "/tmp/AI_INBOUND" 디렉토리에는 a.pdf, b.pdf c.pdf 등의 파일이 포함되어 있습니다.

참고: 현재 디렉터리를 "/tmp/AI_INBOUND"로 변경하고 싶지 않습니다.

나는 다음 코드를 작성했습니다.

for i in `ls ${g_inboundDir}/*.pdf 2>/dev/null`
do
    j=`echo $i | sed   "s/${g_inboundDir}//"`;
    echo $j;
done;

echo $j파일 이름이 제공될 것으로 예상했지만 sed 명령에서 오류가 발생했습니다.

답변1

이것을 달성할 필요는 없습니다 sed:

for i in "${g_inboundDir}"/*.pdf
do
   echo "${i##*/}"; # will give u the filename
   # aliter:
   echo "${i}" | sed -e 's|.*/||' ;# will give the filename via sed as u wanted
done

답변2

for i in `ls ${g_inboundDir}/*.pdf 2>/dev/null`
do
    basename $i
done

관련 정보