./Queen/(1986)/Innuendo/01.One vision.mp3
./Queen/(1986)/Innuendo/02.One vision.mp3
./Queen/(1986)/Innuendo/03.One vision.mp3
上記の行を次のように表示したいと思います。
01.One vision.mp3
02.One vision.mp3
03.One vision.mp3
私は以前試しました:
sed -i 's/^[^.$/]/ /g/
答え1
/
主な問題は、区切り文字として使用しようとすると同時に/
解析する文字でもあることです。
パイプなどの他の区切り文字を使用する必要があります。すべての項目とaを一致させ/
てから、(キャプチャグループ)を使用して抽出したい部分を分離し、次のようにグループをレンダリングします。\(
\)
\1
echo "yourstring" | sed 's|.*/\([^/]*\)$|\1|'
グループをキャプチャすることなく動作させることができます。最後まですべてを削除してください/
。
echo "yourstring" | sed 's|.*/||'
答え2
なぜbasename
この目的ではないのですか?たとえば、
for file in *mp3; do basename "$file"; done