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

时间:2013-09-05 20:50:45

标签: 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 ..................

使用perl / awk / sed。

5 个答案:

答案 0 :(得分:5)

一个简单的sed会做:

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

awk中:

awk 'sub(/^.*\//, "")' file

或者

awk -F/ '{print $NF}' file

答案 1 :(得分:3)

使用perl,

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

答案 2 :(得分:3)

perl中可能的解决方案:

使用File :: Basename:

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

答案 3 :(得分:2)

使用grep

grep -oP '.*/\K.*' file

答案 4 :(得分:2)

使用awk:

awk -F '/' '{print $NF}' file