Я не уверен в вопросе, но думаю, что это был бы ответ:
grep -v '\.' TXrmVpwF | grep -e '/'
grep -v'\.'
:отфильтровать -строки с точками.
grep -e'/'
:возьмите остальные пути.
Вот результаты:
# /x/123
# /x/test
# /x/test_backup
# /x/123/10
# /x/123/100
# /x/123/103
# /x/123/1333
Предполагая, что файл является текстовым файлом Unix (, а не текстовым файлом DOS, в этом случае вы должны сначала запустить dos2unix
над ним):
sed '/^#/{ /\./!{ N; /\n$/d; }; }' <file
Аннотированный sed
скрипт:
/^#/{ # The current line starts with a "#"
/\./!{ # The current line does not contain a dot
N; # Append next line with a \n in-between
/\n$/d; # The line just appended was empty, delete, start next cycle
}
}
# (implicit print)
Если точки разрешены в именах каталогов, но не в последнем компоненте имени пути (, то есть # /x.x/text
следует удалить, если за ним следует пустая строка ), затем измените /\./
на /\.[^/]*$/
.