如何使用awk打印路径文件名的尾部

Noa*_*chi 4 linux awk

我搜索它没有成功.

我有一个带有pathes的文件.我想要打印所有路径的尾部.例如(对于文件中的每一行):

/homes/work/abc.txt
--> abc.txt
Run Code Online (Sandbox Code Playgroud)

有谁知道怎么做?

谢谢

Eve*_*ace 6

awk -F "/" '{print $NF}' input.txt
Run Code Online (Sandbox Code Playgroud)

将给出的输出:

abc1.txt
abc2.txt
abc3.txt
Run Code Online (Sandbox Code Playgroud)

对于:

$>cat input.txt
text path/to/file/abc1.txt
path/to/file/abc2.txt
path/to/file/abc3.txt
Run Code Online (Sandbox Code Playgroud)

  • @Jotne:或'awk -F /'$ 0 = $ NF'` (3认同)

Jot*_*tne 5

这个怎么样 awk

echo "/homes/work/abc.txt" | awk '{sub(/.*\//,x)}1'
abc.txt
Run Code Online (Sandbox Code Playgroud)

由于.*是贪婪的,它会继续下去,直到最后一/
所以在这里,我们都去掉,直到最后/x,既然x是空的,什么都不给予.


Thors版本

echo "/homes/work/abc.txt" | awk -F/ '$0=$NF'
abc.txt
Run Code Online (Sandbox Code Playgroud)

注意,这将失败/homes/work/00,0等等,所以更好地使用:

echo "/homes/work/abc.txt" | awk -F/ '{$0=$NF}1'
Run Code Online (Sandbox Code Playgroud)