1

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

/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。

4

5 回答 5

5

一个简单的 sed 会做:

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

呸:

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

或者

awk -F/ '{print $NF}' file
于 2013-09-05T20:51:33.123 回答
3

使用 awk:

awk -F '/' '{print $NF}' file
于 2013-09-05T20:57:49.603 回答
3

使用 perl,

perl -pe 's|.*/||' file
于 2013-09-05T21:14:24.167 回答
3

perl 中可能的解决方案:

一种使用 File::Basename:

perl -MFile::Basename -ne 'print basename $_' FILE
于 2013-09-05T21:23:16.913 回答
2

用 grep

grep -oP '.*/\K.*' file
于 2013-09-05T20:52:30.140 回答