我在文本文件中有一个文件列表。如何从该文本文件中仅获取文件夹名称?(具有相同名称的文件夹将被写入一次)
/lib/i386-linux-gnu/libwrap.so.0.7.6
/lib/i386-linux-gnu/libbsd.so.0
/lib/i386-linux-gnu/libdbus-1.so.3.19.4
/lib/i386-linux-gnu/libexpat.so.1.6.7
/usr/bin/rakconvert
/usr/bin/python-config
/usr/bin/winecpp
/usr/bin/wine
/usr/bin/regedit
/usr/bin/pycompile
/usr/bin/msiexec
该1.txt
文件的内容。如果我想要输出:
/lib/i386-linux-gnu/
/usr/bin
我所做的所有搜索都是关于将文件列表发送到文件的。“ cat,dirname”等。我没有在这里添加它们,因为我使用了很多代码。
对不起,我的问题没有了。谢谢
将其视为纯文本处理问题(即忽略Unix文件名可以包含换行符的事实,这是除非您知道它们是合理的,否则通常不将路径名存储在文本文件中的原因),我们可能会删除最后一个/
字符之后的所有内容在每一行上,并通过获得独特的结果
$ sed 's,/[^/]*$,,' 1.txt | sort -u
/lib/i386-linux-gnu
/usr/bin
的sed
表达s,/[^/]*$,,
(其也可以写成s/\/[^/]*$//
)将去除任何匹配/[^/]*$
,即斜线后跟任意数量的非斜杠字符(通过到行的结尾)。
在sort -u
末排序结果只保留了独特的条目。如果数据已经排序,则可以使用uniq
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句