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
我有这样一个文件:
$ 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