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

おすすめ記事