我想从文本文件中删除文件名,只将文件夹作为输出。 例如:
Creature\FrostwolfPup\FrostWolfPup_Shadow.m2
Creature\FrostwolfPup\FrostWolfPup_Fire.m2
到
Creature\FrostwolfPup\
仅匹配我使用[^\\]*$
的文件名
现在我把它与sed放在一起,/d
应该删除它
D:\filetype\core\sed.exe -n -e "/^[^\\]*$/d" D:\filetype\listfile\archive\tmp\all.txt > D:\filetype\module\model_bruteforce\tmp\folders_tmp1.txt
但是我的文件夹只有一个空文本文件作为输出而不是文本文件,所以一定是错误的。
答案 0 :(得分:1)
尝试:
sed.exe -e "s/[^\\]*$//" path/to/folders.txt
命令s/[^\\]*$//
要求sed删除行末行\
之后的所有内容。
警告:由于我没有便于测试的Windows机器,我不确定反斜杠是否需要加倍,如上所示。
-n
告诉sed不要打印任何内容。以下命令永远不会要求sed打印:
sed.exe -n -e "/^[^\\]*$/d"
因此,它不会产生任何输出。
答案 1 :(得分:1)
在linux上测试,而不是cygwin
sed -r 's/[^\\]*$//g' /path/to/original/file > /path/to/new/file