Удалить сразу все файлы с определенным именем, но с разными расширениями

sedраствор:

username="test.test"
sed "s/ *$username */ /" file

Выход:

@some_group1 = take.me bake.shake push.pull
@some_group2 = take.me bake.shake push.pull
@some_group3 = take.me bake.shake push.pull 
5
09.02.2020, 16:18
3 ответа

Не было указано, в какой оболочке (bash, fish, zsh, csh )вы хотите использовать какой-либо подстановочный знак при удалении файлов.

Поскольку bash— известная оболочка, я утверждаю, что можно было бы просто использовать эту команду:

rm -- cheatsheetold.*

обратите внимание, что подстановочный знак *используется после --, чтобы избежать ошибок без отступов из-за расширений оболочки bash

командная строка env | grep 'SHELL'может показать вам используемую оболочку. Я также протестировал командную строку в более сокращенной оболочке POSIX dash.

Я просто не использую никакие другие оболочки (, такие как csh и tsh или fish ), поэтому я не могу сказать, как там работает подстановка.

Другой способ получить представление о том, какая оболочка запущена, может заключаться в следующем. ps -p $$где $$должен быть PID текущего процесса (оболочки )и ps инструмент для вывода списка процессов, ограниченных PID текущей оболочки.

https://help.ubuntu.com/community/ShellGlobbing

2
28.04.2021, 23:23

Вы можете использовать подстановочный знак, но будьте очень осторожны, так как он может удалить другие файлы, которые могут совпадать.

rm cheatsheetold.*

Приведенная выше команда удалит любой файл, имя которого начинается с cheatsheetold.и за которым следует что угодно, то есть любое расширение.

1
28.04.2021, 23:23

Unix не имеет файлов -имя -расширения, как и Microsoft Windows (после Windows ME. Однако проводник файлов -по-прежнему имеет концепцию ). Что вам нужно сделать, так это найти все файлы, начинающиеся с... (в вашем случае, начинающиеся с cheatsheetold..

Вы можете сделать это с помощью cheatsheetold.*. Затем он передаст список файлов в rm. Вы можете использовать его с любой командой. Это не rmвещь.

Тренируйтесь сecho cheatsheetold.*

5
28.04.2021, 23:23

Теги

Похожие вопросы