Shell-使用 sed 从列表中删除子目录

Shell-Using sed to Remove Subdirectories from a List

我有这样一个文件:

$ cat file.txt
  /home/user/Directory1
  /home/user/Directory1/subdirectory1
  /home/user/Directory1/subdirectory2
  /home/user/Directory2

我想删除所有子目录。换句话说,我希望这发生:

$ ./myprogram.sh
$ cat file.txt
  /home/user/Directory1
  /home/user/Directory2

我试过读取第一行并设置一个字符串,然后读取每一行,如果新行的子字符串与第一个字符串的长度匹配,则使用 sed -i 删除该行。无论如何,它变得笨拙并且无法正常工作。告诉我是否要我 post 此处的损坏代码。

此外,该列表是按字母顺序排列的,因此这可能有帮助也可能没有帮助。

非常感谢!

像这样:

cut -d / -f 1-4 file | uniq

输出:

/home/user/Directory1
/home/user/Directory2