pau*_*op6 2 regex linux bash awk sed
我在文本文件中有一个文件位置列表.例如:
/var/lib/mlocate
/var/lib/dpkg/info/mlocate.conffiles
/var/lib/dpkg/info/mlocate.list
/var/lib/dpkg/info/mlocate.md5sums
/var/lib/dpkg/info/mlocate.postinst
/var/lib/dpkg/info/mlocate.postrm
/var/lib/dpkg/info/mlocate.prerm
Run Code Online (Sandbox Code Playgroud)
我想要做的是使用sed或awk从每行的末尾读取,直到第一个正斜杠(即,从每个文件地址中选择实际的文件名).
我对sed和awk的语法都有些不满.有人可以帮忙吗?
$ sed -e 's!^.*/!!' locations.txt mlocate mlocate.conffiles mlocate.list mlocate.md5sums mlocate.postinst mlocate.postrm mlocate.prerm
正则表达式量词是贪婪的,这意味着.*匹配尽可能多的输入.将表单模式读.*X作" X字符串中的最后一个".在这种情况下,我们将删除/每行中的所有内容.
我使用了刘海而不是通常的正斜杠分隔符,以避免需要转义我们想要匹配的字面正斜杠.否则,虽然可读性较低的命令是等效的
$ sed -e 's/^.*\///' locations.txt
| 归档时间: |
|
| 查看次数: |
3457 次 |
| 最近记录: |