在linux中分离字符串以生成变量

在linux中分离字符串以生成变量,linux,Linux,我是linux新手,使用命令行时遇到了一些困难,无法使用部分目录名并将其设置为变量。我正在尝试使用“Led齐柏林飞艇-越山越远.mp3”,并创建一个变量,定义为“越山越远.mp3” 不确定您需要什么工具来解决问题,但您可以使用sed: ~$ echo "Led Zeppelin - Over the Hills and Far Away.mp3" | sed -e "s/^.*\- //" Over the Hills and Far Away.mp3 如果需要在varaible中设置结果,那

我是linux新手,使用命令行时遇到了一些困难,无法使用部分目录名并将其设置为变量。我正在尝试使用“Led齐柏林飞艇-越山越远.mp3”,并创建一个变量,定义为“越山越远.mp3”

不确定您需要什么工具来解决问题,但您可以使用sed:

~$ echo "Led Zeppelin - Over the Hills and Far Away.mp3" | sed -e "s/^.*\- //"
Over the Hills and Far Away.mp3
如果需要在varaible中设置结果,那么什么是variable?猛击?还有别的吗?试着这样做:

#!/bin/bash

line="Led Zeppelin - Over the Hills and Far Away.mp3"

updated_line=$(echo "$line" | sed -e "s/^.*\- //")    
试试这个:

$ str="Led Zeppelin - Over the Hills and Far Away.mp3"
$ var=`echo $str | sed -r 's/.*- (.*)/\1/'`
$ echo $var
Over the Hills and Far Away.mp3

你试过什么吗?给我们看看。Stack Overflow希望您能付出一些努力。我能够让我的脚本正常工作,非常感谢大家的帮助。如果这是一个琐碎的问题,我很抱歉,我仍然想弄清楚一切