什么';命令是什么意思?sed';s、 ^.*/、';

什么';命令是什么意思?sed';s、 ^.*/、';,sed,Sed,对我来说,使用sed真的很不寻常。我习惯于使用的s/pattern1/pattern2/g' 有人能帮我解释一下吗? 输入字符串如下所示: path1/path2/path3/fileA path1/path2/path3/fileB path1/path2/path3/fileC 输出是fileA fileB fileC它是一个替代命令,使用“,”而不是“/”作为分隔符-可能是因为模式中有“/”。相当于 s/^.*\/// 从行首到最后一个正斜杠删除所有内容 使用“s”时,下一个字符用作分

对我来说,使用sed真的很不寻常。我习惯于使用
的s/pattern1/pattern2/g'

有人能帮我解释一下吗?
输入字符串如下所示:

path1/path2/path3/fileA path1/path2/path3/fileB path1/path2/path3/fileC

输出是
fileA fileB fileC

它是一个替代命令,使用“,”而不是“/”作为分隔符-可能是因为模式中有“/”。相当于

s/^.*\///
从行首到最后一个正斜杠删除所有内容

使用“s”时,下一个字符用作分隔符。所以你也可以把它写成

s!^.*/!!
s@^.*/@@

使用不同的分隔符可以避免在模式中转义分隔符的实例

您的示例输入:

路径1/路径2/路径3/fileA

^
”表示“从字符串的开头开始,“
*
”表示“匹配任何”贪婪的内容,因此它会尝试匹配尽可能多的字符串。”
*/
'尝试贪婪地匹配任何后跟“/”的内容。因为它是贪婪的,这包括其他的斜杠。因此它与路径1/path2/path3/匹配。替换模式为“”,即无,因此它有效地删除了从字符串开头到最后一个“/”的所有内容,只留下
fileA

TL;DR:意思是“删除路径信息,只保留文件名”