我的文件包含以下行:
/folder/share/folder1
/folder/share/folder1/file.gz
/folder/share/folder2/11072012
/folder/share/folder2/11072012/file1.rar
我正在尝试删除这些行:
/folder/share/folder1/
/folder/share/folder2/11072012
要获得以下最终结果:
/folder/share/folder2/11072012/file1.rar
/folder/share/folder1/file.gz
换句话说,我试图只保留文件的路径,而不是目录。
答案 0 :(得分:1)
此
awk -F/ '$NF~/\./{print}'
-F
$NF
(其中NF
是输入记录中的字段数),以查看它是否包含字符“。”。 (!~
运算符)实施例
$ echo -e '/folder/share/folder.2/11072012
/folder/share/folder2/11072012/file1.rar' | mawk -F/ '$NF~/\./{print}'
/folder/share/folder2/11072012/file1.rar
$
注意:我的微博仅在完整路径的文件名部分中查看.
。
编辑我颠倒了逻辑,打印无点文件而不是点缀文件。
答案 1 :(得分:0)
您可以使用find命令仅获取文件列表
find <directory> -type f
答案 2 :(得分:0)
使用 awk:
awk -F/ '$NF ~ /\./{print}' File
将/
设置为分隔符,检查最后一个字段($NF
)是否包含.
,如果是,则打印该行。
答案 3 :(得分:0)
仅文字结果
sed -n 'H
$ {g
:cycle
s/\(\(\n\).*\)\(\(\2.*\)\{0,1\}\)\1/\3\1/g
t cycle
s/^\n//p
}' YourFile
基于文件名和文件夹名称,假定:
在GNU sed
--posix
posix版本