perl/awk/sed一行程序,用于从包含路径列表的文本文件中删除目录名

perl/awk/sed一行程序,用于从包含路径列表的文本文件中删除目录名,perl,sed,awk,Perl,Sed,Awk,我有一个以下格式的文本文件: /path1/path2/file.ext:20 .................. /path1/path2/file2.ext:120 .................. /path4/file.ext:93 .................. file.ext:20 .................. file2.ext:120 .................. file.ext:93 .................. 我希望获得以下格式的

我有一个以下格式的文本文件:

/path1/path2/file.ext:20 ..................
/path1/path2/file2.ext:120 ..................
/path4/file.ext:93 ..................
file.ext:20 ..................
file2.ext:120 ..................
file.ext:93 ..................
我希望获得以下格式的输出:

/path1/path2/file.ext:20 ..................
/path1/path2/file2.ext:120 ..................
/path4/file.ext:93 ..................
file.ext:20 ..................
file2.ext:120 ..................
file.ext:93 ..................
使用perl/awk/sed。

一个简单的sed可以:

sed 's|^.*/||g' file
Awk:

简单的sed可以:

sed 's|^.*/||g' file
Awk:

和格雷普

grep -oP '.*/\K.*' file
和格雷普

grep -oP '.*/\K.*' file
使用awk:

awk -F '/' '{print $NF}' file
使用awk:

awk -F '/' '{print $NF}' file
使用perl

perl -pe 's|.*/||' file
使用perl

perl -pe 's|.*/||' file

perl中可能的解决方案:

一个使用文件::Basename:

perl -MFile::Basename -ne 'print basename $_' FILE

perl中可能的解决方案:

一个使用文件::Basename:

perl -MFile::Basename -ne 'print basename $_' FILE

只要以后不再有
/
了(是的,我就是那个家伙)+1.好极了,正是我想要的。谢谢。只要以后不再有
/
了(是的,我就是那个家伙)+1.好极了,正是我想要的。谢谢。
/gio
似乎没有用。事实上,这项规定并不生效。->删除的
/gio
似乎没有用。事实上,它与SBS机构不起作用。->Removed我不认为你需要领先的
*
@tripleee没有它它只会删除第一个
/
我不认为你需要领先的
*
@tripleee没有它它它只会删除第一个
/