我在Linux中处理一些目录,我试图操纵文件名,这是我的情况
grep 'string' | awk '{print $2$3}'
我得到以下
dir1/another-directory/even-another-directory/file1.jpeg
dir1/another-directory/even-another-directory/fiiile2.jpeg
dir1/another-directory/even-another-directory/filee4.jpeg
dir1/another-directory/even-another-directory/fileee1.jpeg
我正在尝试获取这些文件的最后一部分(斜杠之后的任何内容),以便在CSV文件中得到这样的列表?
file1.jpeg
fiiile2.jpeg
filee4.jpeg
fileee1.jpeg
是awk还是削减能够做到这一点?我知道这是一个非常基本的问题,但到目前为止我找不到相关的在线内容。
谢谢,
答案 0 :(得分:5)
用awk做一切:
awk '/string/{x=$2$3;sub(/.*\//,"",x);print x}'
答案 1 :(得分:1)
删除grep
并在awk
中进行匹配,并使用xargs
在每个文件上调用basename
以删除主要目录:
awk '/string/{print $2$3}' | xargs -n1 basename