./Queen/(1986)/Innuendo/01.One vision.mp3
./Queen/(1986)/Innuendo/02.One vision.mp3
./Queen/(1986)/Innuendo/03.One vision.mp3
Run Code Online (Sandbox Code Playgroud)
我想将上面的行显示为:
01.One vision.mp3
02.One vision.mp3
03.One vision.mp3
Run Code Online (Sandbox Code Playgroud)
我试过:
sed -i 's/^[^.$/]/ /g/
Run Code Online (Sandbox Code Playgroud)
SYN*_*SYN 11
您的主要问题是您试图/用作分隔符,何时/也是您将要解析的字符。
您需要使用不同的分隔符,例如管道。匹配所有内容和 a /,然后使用\(和\)(捕获组)分隔要提取的部分,并使用\1,呈现该组:
echo "yourstring" | sed 's|.*/\([^/]*\)$|\1|'
Run Code Online (Sandbox Code Playgroud)
您可以在没有捕获组的情况下使用它:只需将所有内容删除到最后一个/:
echo "yourstring" | sed 's|.*/||'
Run Code Online (Sandbox Code Playgroud)
为什么不basename用于这个?例如:
for file in *mp3; do basename "$file"; done
Run Code Online (Sandbox Code Playgroud)