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

时间:2015-08-19 23:56:43

标签: regex shell sed subdirectory

我有一个这样的文件:

$ 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删除该行,如果新行的子字符串与第一个字符串的长度匹配。无论如何,它变得笨拙并且无法正常工作。告诉我你是否希望我在这里发布破损的代码。

此外,列表按字母顺序排列,因此可能会有所帮助,也可能没有帮助。

非常感谢你!

1 个答案:

答案 0 :(得分:0)

这样的事情:

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

输出:

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