我有一个相对路径列表,例如:
dir1
dir2
dir2/dir3
dir2/file1
dir3/file2
dir3/dir4
dir3/dir4/file3
Run Code Online (Sandbox Code Playgroud)
在上面的示例中,说明符dir2/file1
(例如)是多余的,因为dir2
条目将包含此文件。
我想要做的,本质上是从给定的路径列表中删除冗余路径。上面的示例将输出以下内容:
dir1
dir2
dir3/file2
dir3/dir4
Run Code Online (Sandbox Code Playgroud)
请注意,指定的文件和目录不必实际存在于文件系统中。
我愿意使用任何常见的 Unix 命令(sed、awk、perl 等)。
我想验证我的~/.vimrc
文件是否正确,基本上只需启动vim
并立即运行quit
. 我几乎可以用 来做到这一点vim -c quit
,只是我必须按回车键。例如,
> cat ~/.vimrc
echoerr 'test'
> vim -c quit
Error detected while processing /home/josh/.vimrc:
line 1:
test
Press ENTER or type command to continue
Run Code Online (Sandbox Code Playgroud)
有没有办法在不按回车键的情况下做到这一点?我想我可以直接运行echo | vim -c quit
,但我希望有一个更优雅的解决方案。